2009-03-10 3 views
12

SELECT * from ALL_OBJECTS возвращает имена различных процедур/пакетов/таблиц/других объектов db. Я хочу заглянуть в код PL/SQL для соответствующей строки. Как мне это сделать?Поиск Код PL/SQL

Что-то вроде: (псевдокод) SELECT * FROM All_Code WHERE line_of_code как '% MYTEXT%'

ответ

28

использовать что-то вроде:

SELECT * 
     FROM USER_SOURCE 
    WHERE type='PACKAGE' 
     AND NAME='PACKAGE_NAME' 
    ORDER BY type, name, line; 

Есть много вариантов, проверить таблицу USER_SOURCE.

Чтобы найти весь код для строки:

SELECT * 
    FROM ALL_SOURCE 
    WHERE UPPER(text) LIKE UPPER('%what I am searching for%') 
ORDER BY type, name, line 

Обратите внимание, что просматривать код не включен в _SOURCE таблицах. Код просмотра хранится в [USER|ALL|DBA]_VIEWS.TEXT, который является длинной колонкой и трудно запросить.

+2

Или ALL_SOURCE WHERE OWNER = [схема] – cagcowboy

+2

Возможно, вы захотите «ORDER BY type, name, line», чтобы сделать результаты более четкими. – Barry

+2

Сделать регистр нечувствительным: где верхний (текст), как верхний (%, что я ищу для%) – tuinstoel

Смежные вопросы