Есть ли прямой способ перенаправить триггер на другую таблицу? - PullRequest
0 голосов
/ 03 августа 2020

Я работаю над некоторым программным обеспечением Enterprise, поддерживаемым базой данных Oracle 11.2. В корпоративной программе есть таблица с именем T в модели данных. Я нашел таблицу с именем OLDT в этой модели данных, вероятно, созданную каким-то скриптом, запущенным в производстве предыдущими сопровождающими. Эта таблица OLDT имеет связанный с ней триггер TRIG, который явно предназначался для присоединения к T и закодирован в стиле корпоративного ПО. Я подозреваю, что это результат того, что какой-то скрипт переименовал T в OLDT и после этого воссоздал T.

Мой вопрос: есть ли в Oracle прямой способ перенаправить триггер в другую таблицу, или отбрасывает и воссоздает триггер стандартным способом?

1 Ответ

2 голосов
/ 03 августа 2020

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

Из потока попробуйте следующее:

select dbms_metadata.get_ddl('TRIGGER','MY_TRG',user) 
from dual;

или это

select text 
from all_source 
where name='&trig_name' and type='TRIGGER';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...