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
Oracle两表同步的触发器写法
最新推荐文章于 2023-04-16 00:10:25 发布