2016-03-02 95 views
0

我有一個名爲A_TAB的表格的觸發器,它只作爲字符類型的一列A。我有一個另一個表DUP_A具有相同之列TAB_A .Trigger爲A_TAB如下語句級別觸發器

create or replace trigger A_trig 
    before insert on A_TAB 
    for each row 
declare 
    num1 varchar2(50):= null; 
    pragma autonomous_transaction; 
begin 
    select Wm_Concat(a) into num1 from DUP_A; 
    if num1 is null 
    then 
     num1:=:new.a; 
    else 
     num1:=num1||','||:new.a; 
    end if; 
    insert into DUP_A values(num1); 
    delete from DUP_A where rowid<>(select max(rowid) from DUP_A); 
commit; 
end; 

在這裏,我串聯,在新插入的所有值,並將其插入到DUP_A單列。

它工作正常,但我需要statement level trigger具有相同的功能

謝謝

回答

0

刪除「每一行」的條款將改變行級觸發器語句級觸發器。但是PL/SQL運行時引擎創建和填充 兩個數據結構,其功能就像只記錄當行級觸發器被觸發

0

在一份聲明級觸發器不能引用數據(:new:old)(:舊的,新的和)。