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.