次のトリガーがあるとします。
create or replace trigger TR_TEST
for update or insert or delete
on TABLE_X
compound trigger
type array is table of TABLE_X%rowtype index by binary_number;
recs array;
before each row is
i number default rowids.count + 1;
begin
recs(i).a := nvl(:NEW.a, :OLD.a);
recs(i).b := nvl(:NEW.b, :OLD.b);
recs(i).c := nvl(:NEW.c, :OLD.c);
recs(i).d := nvl(:NEW.d, :OLD.d);
end before each row;
after statement is
begin
-- Do procedure here that will throw an exception
end after statement;
end TR_TEST;
after ステートメントが例外をスローして処理されない場合、配列の内容はどうなりますか? 自動的に消去されますか、それともセッション全体でメモリに残りますか? 後者が当てはまる場合、メモリリークを防ぐためにそれを処理する適切な方法は何ですか? ありがとう!