у нас есть приложение, в котором база данных содержит большую часть бизнес-логики в триггерах, с обновлением, которое впоследствии запускает триггеры для нескольких других таблиц. Я хочу реорганизовать беспорядок и хотел начать с извлечения процедур из триггеров, но не могу найти надежного инструмента для этого. Использование «Извлечь процедуру» в SQL Developer и Toad не смогло правильно обработать триггерные переменные: new и: old.
Если у вас была похожая проблема с триггерами, вы нашли способ ее обойти?
РЕДАКТИРОВАТЬ: В идеале, только столбцы, на которые ссылается извлеченный код, будут отправлены как параметры ввода / вывода, например:
Пример исходного кода, извлекаемого из триггера:
.....
if :new.col1 = some_var then
:new.col1 := :old.col1
end if
.....
станет:
procedure proc(in old_col1 varchar2, in out new_col1 varchar2, some_var varchar2) is
begin
if new_col1 = some_var then
new_col1 := old_col1
end if;
end;
......
proc(:old.col1,:new.col1, some_var);