Oracle两表同步的触发器写法

select * from BDC_XMNDZFW;

select * from BDC_XMNDZFW_MX;

----复制备份表(若果想要备份的功能,可令条件为1=1
Create Table BDC_XMNDZFW_Backup As select * from BDC_XMNDZFW Where 1=2;
Create Table BDC_XMNDZFW_MX_Backup As select * from BDC_XMNDZFW_MX Where 1=2;

--创建操作日志表
Drop Table ChgLogTab;

create Table ChgLogTab
(
       TableName Varchar2(32),
       ForeignKey Varchar2(50),
       MainKey Varchar2(36),
       DMLType Varchar2(8),
       DMLTime DATE,
       PersonName VARCHAR2(30),
       ProgramExe VARCHAR2(64),
       HostMachine Varchar2(64),
       IpAddr CHAR(15)
);


Select * from ChgLogTab;
Delete From ChgLogTab;
------------------------------------------------------------------
---不授权给用户,触发器就没法看到这张表
sys as sysdba;
grant select on V_$SESSION to BDCDJ_ZF;
------------------------------------------------------------------

--------无效的主机名绑定变量:解决方案,Values的参数列表中缺少一个分隔符(,)
Create or Replace Trigger Tri_BDC_XMNDZFW
Before insert or delete or update on BDC_XMNDZFW for each row
Declare
TabName Varchar2(32);
ForeignKey Varchar2(50);
MainKey Varchar2(36);
DMLType Varchar2(8);
PersonName VARCHAR2(30);
ProgramExe VARCHAR2(64);
HostMachine VARCHAR2(64);
IpAddr CHAR(15);
DMLTime Date;
strTable Varchar(32);
strSql Varchar(1024);
Begin
      TabName := 'BDC_XMNDZFW';
      strTable := TabName||'_Backup';
      ForeignKey := null;
      MainKey := null;
      select username into PersonName from v$session where audsid = userenv('sessionid');
      select program into ProgramExe from v$session where audsid = userenv('sessionid');
      select machine into HostMachine from v$session where audsid = userenv('sessionid');
      select sys_context('userenv','ip_address') into IpAddr from v$session where audsid = userenv('sessionid');
      select sysdate into DMLTime from du
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值