Как найти весь код, триггеры из базы данных оракула, которые относятся к конкретным таблицам? - PullRequest
3 голосов
/ 15 июля 2009

У меня проблема с удалением всего кода и триггеров из базы данных, которые относятся к определенным таблицам, для установки пакета Solaris. Длинная сложная история, но мне нужно начать с чистого листа.

Мне удалось удалить все существующие таблицы / синонимы, но как найти соответствующий код / ​​триггеры в sqlplus?

К сожалению, невозможно удалить базу данных и воссоздать ее.

Ответы [ 2 ]

8 голосов
/ 15 июля 2009

Ну, оказывается, все имена таблиц имеют префикс с именем моего модуля DAP.

Итак, чтобы найти все имена таблиц и публичные синонимы с помощью sqlplus:

select table_name from all_tables where table_name like 'DAP%';
select synonym_name from all_synonyms where table_name like 'DAP%';

Чтобы получить список триггеров и последовательностей

select trigger_name from all_triggers where table_name like 'DAP%';
select sequence_name from all_sequences where sequence_name like 'DAP%';

Чтобы получить список всех ограничений

select table_name, constraint_name from all_constraints where table_name like 'DAP%';

Чтобы получить код, связанный с DAP:

select text from dba_source where name like 'DAP%';

Теперь я могу написать скрипт, который отбрасывает все.

2 голосов
/ 15 июля 2009

Вы должны иметь возможность запросить системную таблицу ALL_TRIGGERS, чтобы найти триггеры. У него есть столбец table_name. Вероятно, вы можете найти другие связанные объекты с другими системными таблицами (с тех пор, как я связался с Oracle), прошло некоторое время.

http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/statviews_2107.htm

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