pesquisa inteira banco de dados Oracle para parte da cadeia
Eu estou tentando encontrar uma seqüência específica em um banco de dados inteiro do Oracle.
Eu segui o exemplo em outro tópico aqui (Pesquisar todos os campos em todas as tabelas para um valor específico (Oracle)), e está funcionando quando a string é o valor inteiro em uma coluna. Mas eu preciso procurar a string como parte da coluna.
Por exemplo, se eu pesquisar por "Alerta", ele deve retornar todas as colunas com "Alerta" e todas as colunas com "Alerta_QB"
Esta é a consulta no momento:
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;
/
Eu acho que está perto do "USING 'ALERT';" linha que eu preciso adicionar algo, mas eu não sei o quê.
obrigado