创建触发器、跟踪表

在sys用户下,dba权限

1、创建跟踪表,追踪字段的数据格式,需要去查看原表中他们的数据格式
create table TABLE_NAME
(字段名1 数据类型,
字段名2 数据类型,
字段名3 数据类型,
old_字段名A 数据类型,
new_字段名A 数据类型,
old_字段名B 数据类型,
new_字段名B 数据类型,

……
)
partition by range(TIME)
(
partition table_name1 value less than (to_date(‘2021-01-01 00:00:00’,‘SYYYY-MM-DD HH24:MI:SS’,‘NLS_CALENDER=GREGORIAN’))
tablespace DATSPACE
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition table_name2 value less than (to_date(‘2021-02-01 00:00:00’,‘SYYYY-MM-DD HH24:MI:SS’,‘NLS_CALENDER=GREGORIAN’))
tablespace DATSPACE
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
partition table_name3 value less than (to_date(‘2021-03-01 00:00:00’,‘SYYYY-MM-DD HH24:MI:SS’,‘NLS_CALENDER=GREGORIAN’))
tablespace DATSPACE
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 8M
next 1M
minextents 1
maxextents unlimited
),
)

2、创建触发器
create or replace trigger “TRIGGER_TABLE_NAME” before
insert
or update
or delete on “owner”."table_name " for each row declare
字段名2-1 数据类型
字段名2-2 数据类型
字段名2-3 数据类型
……
begin
select sys_context(‘USERENV’,‘字段名1’),
sys_context(‘USERENV’,‘字段名2’),
sys_context(‘USERENV’,‘字段名3’),
……
into user_var,ip_add_var,terminal_var,host_var,session_id
from dual;
if inserting then
insert into owenr.TABLE_NAME #跟踪表
(time,
action ,
table_name,
NEW_字段名A,
NEW_字段名B,
……
字段名1,
字段名2,
字段名3,
……
)
values(
sysdate,
‘insert’,
‘owner.table_name’
:new.字段名A,
:new.字段名B,
……
字段名2-1,
字段名2-2,
……
)
end if;

if updating then
insert into owenr.TABLE_NAME #跟踪表
(time,
action ,
table_name,
OLD_字段名A,
NEW_字段名A,
OLD_字段名B,
NEW_字段名B,
……
字段名1,
字段名2,
字段名3,
……
)
values(
sysdate,
‘update’,
‘owner.table_name’
:old.字段名A,
:new.字段名A,
:old.字段名B,
:new.字段名B,
……
字段名2-1,
字段名2-2,
……
)
end if;

if deleting then
insert into owenr.TABLE_NAME #跟踪表
(time,
action ,
table_name,
OLD_字段名A,
OLD_字段名B,
……
字段名1,
字段名2,
字段名3,
……
)
values(
sysdate,
‘delete’,
‘owner.table_name’
:old.字段名A,
:old.字段名B,
……
字段名2-1,
字段名2-2,
……
)
end if;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值