dynamiczny sql w plsql, szukanie wartosci w kolumnach
jackowsj@gmail.com - 12-04-2006 00:36
dynamiczny sql w plsql, szukanie wartosci w kolumnach
Chcialbym napisac zapytanie, które potrafiloby najpierw wyselectowac jakie kolumny sa w tabeli, a potem znajac juz te kolumny, sprawdzilo czy w którejs z nich nie zalega szukana wartosc ?? Czy cos takiego byloby w ogóle do zrealizowanie ??
Jacek
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 12-04-2006 00:36
jackowsj@gmail.com wrote: > Chcialbym napisac zapytanie, które potrafiloby najpierw > wyselectowac jakie kolumny sa w tabeli, a potem znajac juz te > kolumny, sprawdzilo czy w którejs z nich nie zalega szukana > wartosc ?? Czy cos takiego byloby w ogóle do zrealizowanie ??
Oczywiście da się to zrobić. Najpierw wyszukujesz kolumny:
select column_name from user_tab_columns where table_name='xxx';
No a potem budujesz zapytanie (dynamiczny SQL) i wykonujesz je.
Pozostaje tylko pytanie dlaczego w ogóle musisz robić coś takiego. Powinieneś znać schemat bazy i znaczenie kolumn, a co za tym idzie - wiedzieć gdzie szukać danych...
-- Michał Kuratczyk
Volter - 12-04-2006 00:36
> Pozostaje tylko pytanie dlaczego w ogóle musisz robić coś takiego. > Powinieneś znać schemat bazy i znaczenie kolumn, > a co za tym idzie - wiedzieć gdzie szukać danych... >
Moze to bedzie jakis nowy PLSQL-Admin :)
-- Pozdrawiam Volter
jackowsj@gmail.com - 12-04-2006 00:36
Volter napisał(a):
> Moze to bedzie jakis nowy PLSQL-Admin :)
Ot zrodził mi się dziś po prostu taki dziwny pomysł, że może chciałbym poszukać czegoś w bazie. Zrodziło się to w momencie innego problemu. Mianowicie dostałem pakiet 7000 lini i mam sprawdzić czy w każdej funkcji/procedurze jest zapis pewnych info do tabeli autytowych. Zacząłem kombinować jak tu by zrobić jakiś skrypt, który by podawał, albo najlepiej dla mnie, słał dane do xml, z informacją jaki pakiet, jaka funkcja/procedura i jakie funkcje z niej są wywoływane. No i zacząłem select * from user_objects oraz from all_objects. I o ile znalazłem bez bólu pakiety o tyle funkcji z nich nie mogłem wyszukać po object_name. Zacząłem się zastanawiać jak wyszukiwać po wszystkich polach bo te funkcje gdzieś muszą być ukryte. No i z racji lenistwa, nie wiem kiedy będę musiał jeszcze raz szukać tak czegoś w tabeli, postanowiłem sobie zrobić procedurkę. Zresztą u mnie w pracy to ja jedyny chyba mam takie ekscentryczne pomysły ale dlaczego nie zrobić sobie narzędzia, które umie jakoś coś ułatwić.
P.S. czy istnieje możliwość by selectować dane tak by oprócz rekordu/zbioru rekordów dostać np pierwszy wiersz z nazwą kolumny. To znaczy, nie przez odwołanie do tabeli z nazwami kolumn lecz czy istnieje jakiś obiekt w plsql który dla zapytania wywołanego w posatci:
for x in (select....
umiałby zwrócić x.<a tu coś co określa nazwę kolumny>
Jacek
P.S.2 Te moje pytania to radosna twórczość :)
=?ISO-8859-2?Q?S=B3awomir_Szysz=B3o?= - 13-04-2006 00:10
Dnia 11 Apr 2006 13:51:48 -0700, jackowsj@gmail.com wklepał(-a):
>Ot zrodził mi się dziś po prostu taki dziwny pomysł, że może >chciałbym poszukać czegoś w bazie. Zrodziło się to w momencie >innego problemu. Mianowicie dostałem pakiet 7000 lini i mam sprawdzić >czy w każdej funkcji/procedurze jest zapis pewnych info do tabeli >autytowych. Zacząłem kombinować jak tu by zrobić jakiś skrypt, >który by podawał, albo najlepiej dla mnie, słał dane do xml, z >informacją jaki pakiet, jaka funkcja/procedura i jakie funkcje z niej >są wywoływane. No i zacząłem select * from user_objects oraz from >all_objects. I o ile znalazłem bez bólu pakiety o tyle funkcji z nich >nie mogłem wyszukać po object_name. Zacząłem się zastanawiać jak
USER_SOURCE -- Sławomir Szyszło mailto:slaszysz@poczta.onet.pl Primus inter FAQires & Grand Inquisitor no.0 of pl.comp.bazy-danych FAQ pl.comp.bazy-danych http://www.dbf.pl/faq/ Archiwum http://groups.google.com/groups?grou...mp.bazy-danych
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.plets2.xlx.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 |
|