Результат будет представлен в виде перечня полей таблиц в которых встречается искомая строка и указания количества записей в которых она встречается.
set serveroutput on;
DECLARE
schema_name varchar2(30) := 'hr'; -- имя схемы
part_of_string varchar2(30) := 'grant'; -- искомая строка
cnt_in_tab number := 0;
search VARCHAR2(250);
BEGIN
FOR t IN
(
select
COL.OWNER as owr
,COL.TABLE_NAME as tbn
,COL.COLUMN_NAME as cln
from all_tab_columns col
where COL.OWNER = upper(schema_name)
)
LOOP
search := 'SELECT COUNT(*) FROM ' || t.owr || '.' || t.tbn || ' WHERE upper(to_char(' || t.cln || ')) LIKE upper(''%'|| part_of_string ||'%'')' ;
EXECUTE IMMEDIATE search INTO cnt_in_tab;
IF cnt_in_tab > 0 THEN dbms_output.put_line( 'TABLE: ' ||t.tbn ||'.'||t.cln||'; FOUND: '||cnt_in_tab );
END IF;
END LOOP;
END;