Найти строку в исходном коде (DDL) хранимой процедуры в Oracle - PullRequest
3 голосов
/ 18 декабря 2009

Мне нужно найти строку в исходном коде (DDL) для всех хранимых процедур в схеме Oracle.

Я использую этот запрос для выполнения задачи, но я думаю, что можно улучшить

SELECT T0.OBJECT_NAME
FROM USER_PROCEDURES T0 
WHERE T0.OBJECT_TYPE='PROCEDURE'
AND INSTR( (SELECT DBMS_METADATA.GET_DDL('PROCEDURE',T0.OBJECT_NAME,'MySCHEMA') 
            FROM DUAL), 'TheStringToSearch' )>0

Есть ли способ выполнить эту задачу более оптимальным и быстрым способом?

спасибо заранее.

1 Ответ

14 голосов
/ 18 декабря 2009

Да, используйте USER_SOURCE:

select distinct name
from   user_source
where  type = 'PROCEDURE'
and    lower(text) like lower('%the_text_you_want%');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...