oracle 更改实便例名称,大家好,请教在oracle中能否获取update记录 所涉及的字段的名称?如能实现的话,请教相关实现方法。谢谢~...

可以写个触发器来记录的吧,参考下面看看,

create or replace trigger tg_tf_pr_order_test_tg

after update or delete on tf_pr_order_test_tg

for each row

declare

iv_PARTITION_ID number(4);--PARTITION_ID,分区字段 iv_ORDER_ID number(16); --工单编号 iv_STAFF_ID number(16); --修改工号 iv_MODIFY_TIME date; --修改日期 iv_TAB_NAME varchar2(50); --表名 iv_COL_NAME varchar2(50); --字段名 iv_NEW_VALUE varchar2(2000);--新值 iv_OLD_VALUE varchar2(2000);--旧值

begin iv_ORDER_ID := :old.ORDER_ID;

iv_PARTITION_ID := mod(:old.ORDER_ID,10000);

iv_MODIFY_TIME := SYSDATE;

iv_TAB_NAME := 'tf_pr_order_test_tg';

if deleting then

for i in (SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'tf_pr_order_test_tg') loop

iv_COL_NAME := i.COLUMN_NAME;

iv_OLD_VALUE := :old.iv_COL_NAME;

insert into TF_PR_ORDER_LOG values(iv_PARTITION_ID,iv_ORDER_ID,'',iv_MODIFY_TIME,iv_TAB_NAME,iv_COL_NAME,'null',iv_OLD_VALUE);

end loop;

elsif updating then

for j in (SELECT * FROM ALL_COL_COMMENTS WHERE TABLE_NAME = 'tf_pr_order_test_tg') loop

iv_COL_NAME := j.COLUMN_NAME;

if old.iv_COL_NAME <> new.iv_COL_NAME then

insert into TF_PR_ORDER_LOG values(iv_PARTITION_ID,iv_ORDER_ID,'',iv_MODIFY_TIME,iv_TAB_NAME,iv_COL_NAME,new.iv_COL_NAME,old.iv_COL_NAME);

end if;

end loop;

end if;

end;

阅读终点,创作起航,您可以撰写心得或摘录文章要点写篇博文。去创作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值