konto usunięte

Temat: sprawdzenie danej wartości w tabelach

Witam
Nie wiecie czy w Oraclu jest mozliwość wyświetlenia w jakich kolumnach dla wielu tabel wystepuje nastepujaca wartość
Przykład:

Mam nazwe kontrahenta 'XXXX' i chciałbym zobaczyc w jakich tabelach jest wpis 'XXXX'. chodzi mi o coś na zasadzie all_tab_columns tylko jak zrobic warunek
Paweł Grzegorz Kwiatkowski

Paweł Grzegorz Kwiatkowski Architekt
oprogramowania,
Ericsson

Temat: sprawdzenie danej wartości w tabelach

Nie wiem czy dobrze zrozumiałem problem... ale możesz pobrać listę tabel powiązanych więzami integralności i dla każdej tabeli sprawdzać czy istnieje tam owa wartość.

Szczegóły: [url]
http://download.oracle.com/docs/cd/B19306_01/server.10...[/url]

Zakładając, że Kontrahent to tabelka rodzic, pobierasz wszystkie tabelki dzieci i sprawdzasz dla każdej czy tam są wpisy dla danego kontrahenta.
Grzegorz G.

Grzegorz G. ASE / Systems
Architect, Syniverse

Temat: sprawdzenie danej wartości w tabelach

select 'select * from ' || owner || '.' || table_name || ' where ' || column_name || ' = ''' || :1 || ''';'
from dba_tab_columns
where data_type = :2
and owner = :3
and column_name = :4


Czyli np. jeżeli szukasz słowa 'XXXX' we wszystkich tabelach użytkownika AAA i wiesz, że kolumna zawsze się nazywa Kontrahent, to :1 = 'XXXX', :2 = 'VARCHAR2', :3 = 'AAA', :4 = 'KONTRAHENT'. No i pewnie chcesz zmienić * na count(*), "=" na "like" itd.

To powyżej generuje zapytania do wszystkich tabel które chcesz sprawdzić, więc wyniki albo możesz sobie wyświetlić, albo poprzedzić selecta insert into.

Następna dyskusja:

Szukam bazy danej lekarzy s...




Wyślij zaproszenie do