declare
v_sql varchar2(1000);
tbl varchar2(100) := 'SYS';
v_search_string VARCHAR2(1000) := '007';
cnt varchar2(32767);
begin
FOR rec IN (
SELECT table_name, column_name
FROM all_tab_columns
WHERE table_name NOT LIKE '%SYS%'
AND upper(owner) = upper('salyfy')
AND data_type IN ('VARCHAR2')
) loop
v_sql := 'SELECT count(*) FROM ' || rec.table_name ||
' WHERE ' || rec.column_name || ' LIKE ''%' || v_search_string || '%''';
dbms_output.put_line('Executing: ' || v_sql); -- Debug print
BEGIN
execute immediate v_sql into cnt;
dbms_output.put_line('Count: ' || cnt);
insert into chk_dum_rec(cnts, tbl_name, column_name) values (cnt, rec.table_name, rec.column_name);
EXCEPTION
WHEN NO_DATA_FOUND THEN
dbms_output.put_line('No data found for query: ' || v_sql);
WHEN OTHERS THEN
dbms_output.put_line('Error occurred: ' || SQLERRM);
END;
end loop;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
commit;
END;
No comments:
Post a Comment