Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
jtmt2k - 22-09-2007 00:16
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
Cześć,
Nie wiem jak napisać zapytanie. Baza Oracle, SQL, PL/SQL
W tabeli kilka atrybutów znakowych i chciałbym wypisać nazwy tych atrybutów, dla których wartości, które spełniają warunek równości.
Próbowałem wyciągnąć sobie wszystkie nazwy atrybutów z tabeli user_tab_columns i potem na ich podstawie zrobić zapytanie jednak w warunku otrzymuje porównanie dwóch stringów.
.... d number(5); begin
for i in ( select c.column_name from user_tab_columns c where c.table_name = 'MOJA_TABELA' and c.data_type = 'VARCHAR2' ) loop SELECT Count(*) INTO d FROM MOJA_TABELA WHERE i.column_name = '?'; DBMS_OUTPUT.PUT_LINE(i.column_name;); DBMS_OUTPUT.PUT_LINE(d); end loop; end sign_replace; ....
Może mi ktoś pomóc ?
Pozdr, jtmt
dap997 - 23-09-2007 00:00
jtmt2k wrote: > Cześć, > > Nie wiem jak napisać zapytanie. Baza Oracle, SQL, PL/SQL > > W tabeli kilka atrybutów znakowych i chciałbym wypisać nazwy tych > atrybutów, dla których wartości, które spełniają warunek równości. > > Próbowałem wyciągnąć sobie wszystkie nazwy atrybutów z tabeli > user_tab_columns i potem na ich podstawie zrobić zapytanie jednak w > warunku otrzymuje porównanie dwóch stringów. > > ... > d number(5); > begin > > for i in ( > select c.column_name > from user_tab_columns c > where c.table_name = 'MOJA_TABELA' > and c.data_type = 'VARCHAR2' ) > loop > SELECT Count(*) INTO d FROM MOJA_TABELA WHERE i.column_name = '?'; > DBMS_OUTPUT.PUT_LINE(i.column_name;); > DBMS_OUTPUT.PUT_LINE(d); > end loop; > end sign_replace; > ... > > Może mi ktoś pomóc ?
Hej, nie rozumiem co chcesz osiągnąć. Jak chcesz otrzymać nazwy obiektów (table, indeksów) posiadających kolumne o danej nazwie to dobrze robisz używajac user_tab_columns...
dap -- dap.polanski.biz
Thomas Olszewicki - 23-09-2007 00:00
=?iso-8859-2?q?Re:_Oracle,_SQL,_PL/SQL=2E_Jak_napisa=E6_zapytanie,_kt=F3re_zwr=F3ci_n azw=EA_atrybutu,_kt=F3rego_warto=B6ci_spe=B3niaj=B 1_zadany_warunek?=
On Sep 21, 6:30 pm, jtmt2k <jtm...@gmial.com> wrote: > Cześć, > > Nie wiem jak napisać zapytanie. Baza Oracle, SQL, PL/SQL > > W tabeli kilka atrybutów znakowych i chciałbym wypisać nazwy tych > atrybutów, dla których wartości, które spełniają warunek równości. > > Próbowałem wyciągnąć sobie wszystkie nazwy atrybutów z tabeli > user_tab_columns i potem na ich podstawie zrobić zapytanie jednak w > warunku otrzymuje porównanie dwóch stringów. > > ... > d number(5); > begin > > for i in ( > select c.column_name > from user_tab_columns c > where c.table_name = 'MOJA_TABELA' > and c.data_type = 'VARCHAR2' ) > loop > SELECT Count(*) INTO d FROM MOJA_TABELA WHERE i.column_name = '?'; > DBMS_OUTPUT.PUT_LINE(i.column_name;); > DBMS_OUTPUT.PUT_LINE(d); > end loop; > end sign_replace; > ... > > Może mi ktoś pomóc ? > > Pozdr, > jtmt
Musisz uzyc Dynamic SQL; Zobacz "Execute Immediate" oraz OPEN CURSOR FOR ... USING... HTH Thomas
jtmt2k - 24-09-2007 00:10
Thomas Olszewicki pisze: > On Sep 21, 6:30 pm, jtmt2k <jtm...@gmial.com> wrote: > > Musisz uzyc Dynamic SQL; > Zobacz "Execute Immediate" > oraz OPEN CURSOR FOR ... USING... > HTH > Thomas >
Dzięki :)
pozdr, jtmt
jtmt2k - 24-09-2007 00:10
dap997 pisze:
> > Hej, > nie rozumiem co chcesz osiągnąć. > Jak chcesz otrzymać nazwy obiektów (table, indeksów) posiadających > kolumne o danej nazwie to dobrze robisz używajac user_tab_columns... > > > dap > -- > dap.polanski.biz
hej,
Chodzi o to, że nazwy tych atrybutów, której dostaje z pętli mają posłużyć od konstrukcji zapytania o wartości tabeli dla tego atrybutu dla podanego warunku. I nie wiem jak to mogę zrobić bo ten warunek, który widzisz
>> SELECT Count(*) INTO d FROM MOJA_TABELA WHERE i.column_name = '?';
jest bez sensu bo porównuje dwa stringi.
Problem jest taki, ze tabela ma ogromną liczbę atrybutów i chce napisać sobie takie zapytanie, które zwróci mi nazwę atrybutu, którego wartości spełniają zadany warunek.
jasne ?
pozdr, jtmt
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle 19g +Insert +Insert +Insert...
MSSQL Express czy Oracle Express
[Oracle, Toad] Zaladowanie obiektu w TOAD
[Oracle][Reports30] 10G nie dziala razem z Reports3.0
klient oracle (zmiana domyslna klienta oracla)
[oracle] [xml] XML na bazie istniejacej struktury ?
[Oracle] W jaki sposób skopiować całą zawartość schemy jednego użytkownika do nowo utworzonego użytkownika?
klient Oracle 10g SE a Windows 98 SE
Oracle Standard Edition One - czym sie rozni od wersji standard iexpress?
[ORACLE] RMAN - blad: ORA-19665 i ORA-19664
zanotowane.pldoc.pisz.plpdf.pisz.plfantazia.htw.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|