create table hrttt (id number);

create table hrtt (id number);

 

測試 當update hrttt表時,將更新後的資料透過procedure 將資料新增到 hrtt表

方法如下:

建立trigger

create or replace trigger tri1
after update on hrtt
for each row
declare
BEGIN
IF :new.id is not null THEN
pro02(:new.id) ;
END IF;
END;

建立procedure

create or replace procedure pro02 (i in number)
is
begin
commit;
insert into hrttt values(i);
end pro02;

 

執行 update hrtt set id=2 where id=1;

hrtt中就有 id=2的資料了

 

 

 

 

*******************************************

但是

如果想要做到update hrttt表中的資料後 把更新的資料值再 insert或update 進hrttt表中的其他欄位 就會發生ORA-04091錯誤

原因是對這個表update後還沒commit 或rollback,因此不能對資料表進行其他DML操作

解決方案還在努力當中..... (雖然這樣違反了正規化) 

因此不建議這樣操作

 

 

文章標籤
全站熱搜
創作者介紹
創作者 to52016 的頭像
to52016

Eason [資料科學//Python學習/資料庫] & [拍片&剪片]

to52016 發表在 痞客邦 留言(0) 人氣(199)