Durchsucht die gesamte Oracle-Datenbank nach einem Teil der Zeichenfolge
Ich versuche, eine bestimmte Zeichenfolge in einer gesamten Oracle-Datenbank zu finden.
Ich habe das Beispiel in einem anderen Thema hier verfolgt (Alle Felder in allen Tabellen nach einem bestimmten Wert durchsuchen (Oracle)), und es funktioniert, wenn die Zeichenfolge der gesamte Wert in einer Spalte ist. Aber ich muss nach der Zeichenfolge als Teil der Spalte suchen.
Wenn ich zum Beispiel nach 'Alert' suche, sollte es alle Spalten mit 'Alert' in und alle Spalten mit 'Alert_QB' zurückgeben.
Dies ist die Abfrage im Moment:
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;
/
Ich denke, es ist in der Nähe des "USING 'ALERT';" Zeile, die ich etwas hinzufügen muss, aber ich weiß nicht was.
Vielen Dank