oracle trigger for table on commit

 

1.     create a table  

create table ShoppingCart  

( ProductID number(6),

  SalePrice number(8,2), 

  SaleDate date,  

  SaleBatchID number(6),

  CustomerID number(6)

);   

 

insert into SHOPPINGCART values(11112,23.34,sysdate,11112,11112);

insert into SHOPPINGCART values(11113,55.12,sysdate,11113,11113);

insert into SHOPPINGCART values(11114,27.54,sysdate,11114,11114);

 

2.     create materialized view for table

create materialized view log on ShoppingCart

                with rowid

                including new values ;

 

create materialized view ShoppingCart_mvw

                refresh fast on commit

                with rowid

                enable query rewrite

                as select * from ShoppingCart;

 

3.     create trigger for table on commit of update

create or replace trigger ShoppingCart_mvw_tri   

after update on ShoppingCart_mvw 

for each row  

begin

     PROCSENDEMAIL('new content ','Change ProductID='||:new.ProductID||'  SaleDate='||:new.SaleDate,

        'ORACLE_DB','xxxx@163.com;yyy@126.com','smtp.163.com');

end;

 

4.     testing

1) don not commit;

update ShoppingCart set SaleDate='16-JUL-08' where ProductID =11112;

 

2) do commit;

Rollback;

update ShoppingCart set SaleDate='16-JUL-08' where ProductID =11112;

commit;

 

------------------------------------------------------------

------------------------------------------------------------

------------------------------------------------------------

PROCEDURE PROCSENDEMAIL(P_TXT       VARCHAR2,

                             P_SUB       VARCHAR2,

                             P_SENDOR    VARCHAR2,

                             P_RECEIVER  VARCHAR2,

                             P_SERVER    VARCHAR2,

                             P_PORT      NUMBER DEFAULT 25,

                             P_NEED_SMTP INT DEFAULT 0,

                             P_USER      VARCHAR2 DEFAULT NULL,

                             P_PASS      VARCHAR2 DEFAULT NULL,

                             P_FILENAME  VARCHAR2 DEFAULT NULL,

                             P_ENCODE    VARCHAR2 DEFAULT 'bit 7')

------------------------------------------------------------

------------------------------------------------------------

------------------------------------------------------------

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

**** See PROCSENDEMAIL in :

http://blog.csdn.net/hiyu2218/archive/2008/07/17/2666722.aspx

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

------------------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值