Site em Manutenção
Conteúdo voltado para banco de dados Oracle e SQL Server

Localizar string em objetos do banco

Há alguns dias atrás precisei localizar a string PRAGMA AUTONOMOUS_TRANSACTION em todos os objetos do banco de dados. No SQL Server uma busca rápida pela sys.comments ou sys.sql_modules retorna quais objetos possuem essa string em seu código.

No Oracle a busca também é simples, existem 3 views que ajudam essa busca, são elas: ALL_SOURCE, DBA_SOURCE e USER_SOURCE.

  • ALL_SOURCE: lista todos os objetos que possuem a string desejada somente nos objetos que o usuário logado tem acesso.
  • DBA_SOURCE: lista todos os objetos que possuem a string desejada em todos os objetos da instância.
  • USER_SOURCE: lista somente os objetos cujo usuário logado seja dono.

O trecho PL-SQL para buscar os dados são:

SELECT *
FROM ALL_SOURCE
WHERE UPPER(text) LIKE UPPER(‘%PRAGMA AUTONOMOUS_TRANSACTION%’)
ORDER BY type, name, line;

Abaixo o exemplo da busca em minha base de dados encontrando os objetos que possuem essa string:

Feito isso basta editar a function FC_ASS e ir até a linha 6 para verificar a evidência do código.

Leonardo Pedroso

Leonardo Pedroso, é administrador de banco de dados, possui amplo conhecimento em Oracle 11g e 12c, com atuação em empresas de telecomunicações, bancos, seguradoras e órgãos do governo brasileiro prestando serviços especializados em banco de dados. Atua ativamente em comunidades técnicas através de fóruns, eventos, blog e palestras.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.