create or replace trigger item_configuration_std_change2
after insert or update or delete on item_configuration_std
for each row
declare
begin
case
when inserting then
insert into dest_info
values(
:new.ITEM_SUBJECT,
:new.SOURCE_TABLE,
:new.SOURCE_TABLE_COLUMNs,
:new.DESTINATION_TABLE,
:new.DEST_TABLE_COLUMNS,
:new.ITEM_CODE,
:new.ITEM_CH_NAME,
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
sysdate,
'執行了插入操作',
:new.ITEM_RULE,
(select distinct std.item_ch_name from item_configuration_std std where std.item_code = :new.MEASURING_UNIT and rownum <=1)
);
when updating then
insert into dest_info
values(
:new.ITEM_SUBJECT,
:new.SOURCE_TABLE,
:new.SOURCE_TABLE_COLUMNs,
:new.DESTINATION_TABLE,
:new.DEST_TABLE_COLUMNS,
:new.ITEM_CODE,
:new.ITEM_CH_NAME,
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
sysdate,
'執行了修改操作',
:new.ITEM_RULE,
(select distinct std.item_ch_name from item_configuration_std std where std.item_code = :new.MEASURING_UNIT and rownum <=1)
);
when deleting then
insert into dest_info
values(
:old.ITEM_SUBJECT,
:old.SOURCE_TABLE,
:old.SOURCE_TABLE_COLUMNs,
:old.DESTINATION_TABLE,
:old.DEST_TABLE_COLUMNS,
:old.ITEM_CODE,
:old.ITEM_CH_NAME,
SYS_CONTEXT('USERENV', 'HOST'),
SYS_CONTEXT('USERENV', 'IP_ADDRESS'),
sysdate,
'執行了刪除操作',
:new.ITEM_RULE,
(select distinct std.item_ch_name from item_configuration_std std where std.item_code = :old.MEASURING_UNIT and rownum <=1)
);
end case;
end;
-------------------------------- 解釋---------------------------
create or replace trigger item_configuration_std_change2
after insert or update or delete on item_configuration_std
for each row
創建或代替一個名字叫 item_configuration_std_change2 的觸發器 作用是當對錶 item_configuration_std 執行插入,修改,刪除操作時執行這個觸發器
for each row 每行操作
when inserting then 當執行插入操作時進行下面的語句
:new.ITEM_SUBJECT item_configuration_std 表中的ITEM_SUBJECT 字段,將新值插入新表中。
剩下的就不難理解了吧,謝謝大家閱讀,本文原創,轉載請寫明出自 o(∩_∩)o 哈哈 大家好運!
!