przeszukaj całą bazę danych Oracle dla części łańcucha
Próbuję znaleźć określony ciąg w całej bazie danych Oracle.
Śledziłem przykład w innym temacie tutaj (Wyszukaj wszystkie pola we wszystkich tabelach dla określonej wartości (Oracle)) i działa, gdy łańcuch jest całą wartością w kolumnie. Ale muszę wyszukać ciąg jako część kolumny.
Na przykład, jeśli szukam „Alert”, powinien zwrócić wszystkie kolumny z „Alert” i wszystkie kolumny z „Alert_QB”
To jest właśnie zapytanie:
DECLARE
match_count INTEGER;
BEGIN
FOR t IN (SELECT owner, table_name, column_name
FROM all_tab_columns
WHERE data_type LIKE '%CHAR%') LOOP
EXECUTE IMMEDIATE
'SELECT COUNT(*) FROM ' || t.owner || '.' || t.table_name ||
' WHERE '||t.column_name||' = :1'
INTO match_count
USING 'ALERT';
EXCEPTION when others then
null;
end;
IF match_count > 0 THEN
dbms_output.put_line( t.table_name ||' '||t.column_name||' '||match_count );
END IF;
END LOOP;
END;
/
Myślę, że jest w pobliżu „UŻYWANIA” ALERT ”; linijkę, którą muszę dodać, ale nie wiem co.
Dzięki