PostgreSQL dane z widoku.

0

Witam,

odczytuję dane z widoku, wszystko jest OK dopóki nie użyję klauzuli WHERE.
Po WHERE daję prosty warunek:

select * from MojWidok where poleINT=1;

no i nic nie dostaję (w polu poleINT, są oczywiście dane).
Podobnie jest z polami gdzie są przetrzymywane stringi.
Jeżeli czytam dane z tabeli nie mam tego problemu.
O co chodzi z tymi widokami?

Pozdrawiam.

0

SOA #1

0

Zamiast select , próbuję select count()
no i ten sam problem...

0

Szklana kula nieczynna, podaj jak wygląda definicja tabeli, widoku i parę insertów z przykładowymi danymi.

0

Oto definicja mojego widoku:

CREATE OR REPLACE VIEW schemat.elm_dane_v AS
 SELECT e.id AS "ID",
    e.state AS "STATE",
    e.obj_id AS "OBJ_ID",
    e.txt AS "TXT",
    e.angle AS "ANGLE",
    e.date_lock AS "DATE_LOCK",
    o.am AS "AM",
    o.kod_a AS "KOD_A",
    o.naz_a AS "NAZ_A",
    o.kod_c AS "KOD_C",
    o.kwa AS "KWA",
   FROM elm_dane e,
    obj_dane o
  WHERE e.obj_id = o.id;

To zapytanie działa:

SELECT count(*) FROM elm_dane_v;;

To nie działa:

SELECT count(*) FROM elm_dane_v WHERE TXT LIKE '200%';
3

Z tego co pamiętam SLQa to wielkość liter nie ma znaczenia przy indentyfikatorach (np nazwach kolumn), ale:

  • w Oraclu identyfikatory są wewnętrznie trzymane jako wielkie litery
  • w Postgresie identyfikatory są trzymane wewnętrznie jako małe litery

Żeby wymusić że wielkość liter będzie miała znaczenie używa się właśnie cudzysłowów, więc twój kod zadziała nawet najprawdopodobniej na Oraclu :D
Na Postgresie musisz napisać "TXT" LIKE '%2000' lub ... usunąć wszystkie cudzysłowy z definicji widoku!

0

zrób zapytanie SELECT * FROM elm_dane_v;, znajdź w nim rekord/rekordy, pasujące do warunku TXT LIKE '200%', zrób screenshota i wklej go tutaj

1 użytkowników online, w tym zalogowanych: 0, gości: 1