Hallo,
ich habe folgendes Problem. Ich möchte gerne nach bestimmten Krieterien meine komplette Datenbank absuchen. Dazu existiert eine Tabelle, die alle Tabellen und die Spalten beeinhaltet. So weit so gut!
Folgender PL/SQL Code soll mir die Tabellen ausgeben, die das Suchwort enthalten.
set serveroutput on;
DECLARE
cursor C_TableNames is
select table_name, column_name from dba_tab_columns where data_type='VARCHAR2' and Owner='TINA';
v_TableName varchar2(100):=NULL;
v_ColumnName varchar2(100):=NULL;
executeString varchar2(256):=NULL;
BEGIN
open C_TableNames;
dbms_output.enable(1000000);
loop
fetch C_TableNames into v_TableName, v_ColumnName;
exit when C_TableNames%NOTFOUND;
executeString := 'Select '''|| v_TableName ||''' as Tabelle from '||
v_TableName ||' where '|| v_ColumnName ||'=''SUCHWORT'';
DBMS_OUTPUT.put_line(executeString);
execute immediate (executeString);
end loop;
close C_TableNames;
END;
/
Führe ich den Code aus, dann sagt er mir:Fehlerbericht:
ORA-00933: SQL command not properly ended
ORA-06512: at line 20
00933. 00000 - "SQL command not properly ended"
Was will er? :confused: Ein Semikolon in den executeString einbauen? Dann sagt er : invalid charakter
Danke schonmal im Voraus!