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操作
解決方案還在努力當中..... (雖然這樣違反了正規化)
因此不建議這樣操作
文章標籤
全站熱搜
