Hi anybody,
I'm using ora11gR2. Tried the new compound trigger feature. I define a before each row and an after statement section. Additionally I define several local functions in top of trigger body. In local procedure ( insdelupd within this example ) I get data of old-buffer, but not data of new-buffer. After execution of assignments in insdelupd the variable ParentKeyListOld is filled with actual value of ID1, while ParentKeyListNew is just filled with delimiter ':'. I got the idea, a local procedure outside the specialized trigger sections ( statement or row level ) could be called from both types, but :new and :old-buffers only make sense within row-level section and therefore ther could'nt be access to these buffers. But as debugger shows: the :old-buffer is filled with data.
Has anybody an idea ?
thanks in advance
Wilko Helms
CREATE OR REPLACE TRIGGER BTK."tcm_testtable_1_hp"
for delete or insert or update on BTK.TESTTABLE_1
compound trigger
...
ParentKeyListNew varchar2(4096);
ParentKeyListOld varchar2(4096);
...
procedure InsDelUpd as
begin
if updating then
..
ParentKeyListNew := ParentKeyListNew || :new.ID1 || ':';
ParentKeyListOld := ParentKeyListOld || :old.ID1 || ':';
..
end if;
end;
before each row is
begin
..
InsDelUpd;
end before each row;
after statement is
begin
..
..
end after statement;
end;
/
[Code]