Есть ли способ выполнить полнотекстовый поиск всех пакетов и процедур oracle?

Я хотел бы выполнить поиск по всем моим пакетам процедур и функциям для определенной фразы.

поскольку можно получить код для скомпилированных процедур с помощью toad, я предполагаю, что полный текст хранится в некоторой таблице словаря данных. Кто-нибудь знает где это будет?

Спасибо большое

3 ответов


вы можете сделать что-то вроде

SELECT name, line, text
  FROM dba_source
 WHERE upper(text) like upper('%<<your_phrase>>%') escape '\' 

процедура поиска объектов Toad будет просматривать ALL_SOURCE (и другие части словаря данных). Конечно, это будет ограничено объектами, которые может видеть подключенный пользователь. Если у вас есть доступ к версии DBA, отлично. Если нет,вы не будете искать все.

кроме того, если вы вернулись на Oracle 7 или ваша база данных была перенесена с Oracle 7 на 8i или 9i (не уверен в 10 или 11), Источник триггера может не отображаться в user_source или all_source просмотр. Лучше проверить. Самый простой способ, который я нашел, чтобы он появился, - это сделать фактическую модификацию - добавить пробел, например, - и перекомпилировать триггер.


вы имеете в виду использование PL/SQL? Или просто с помощью жабы? Я знаю, что вы можете использовать функцию "Найти объекты" (или что-то в этом роде) для ручного поиска по всем объектам, таким как procs, таблицы и т. д...