Oracle: поиск хотя бы всех сохраненных кодов procs / triggers / other db? - PullRequest
6 голосов
/ 20 апреля 2011

Можно ли выполнять поиск по всем программным объектам (функциям, хранимым процедурам, триггерам и т. Д.) По нескольким схемам в Oracle?

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

Ответы [ 4 ]

10 голосов
/ 20 апреля 2011

Возможен поиск по объектному коду - вы обычно используете пакет DBMS_METADATA, чтобы сгенерировать DDL для объекта, а затем выполнить поиск в CLOB.Однако на самом деле это не похоже на то, что вы хотите сделать.

Если вы просто пытаетесь выяснить, на какую таблицу ссылается какой-либо код в вашей системе, вы, как правило, захотите использовать DBA_DEPENDENCIES просмотр (или ALL_DEPENDENCIES или USER_DEPENDENCIES в зависимости от ваших привилегий и объема того, что вы ищете).Что-то вроде

SELECT *
  FROM dba_dependencies
 WHERE referenced_owner = 'SCOTT'
   AND referenced_name  = 'EMP'
   AND referenced_type  = 'TABLE'

покажет вам все, что зависит от таблицы EMP в схеме SCOTT.

Единственный раз, когда вы захотите искать код, а не смотреть наDBA_DEPENDENCIES было бы, когда у вас был код, который выполнял динамический SQL, где имя таблицы было жестко запрограммировано.Но на практике это маловероятно.

2 голосов
/ 20 апреля 2011

Вы можете искать в представлении DBA_SOURCE:

SELECT *
  FROM dba_source
 WHERE UPPER(text) LIKE '%YOUR_TABLE_NAME%';
1 голос
/ 05 мая 2016

Сделайте это в жабе, выбрав:

Поиск => Поиск объекта

0 голосов
/ 21 апреля 2011

Если бы у вас было Жаба , вы могли бы сделать это встроенным.(Я удалил свои схемы для конфиденциальности) Toad Search

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...