oracle表执行更新操作的时候,那些字段被更新了
2021/9/13 19:08:08
本文主要是介绍oracle表执行更新操作的时候,那些字段被更新了,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题要求:每次表执行更新操作的时候,要知道是那些字段被更新了?
解决办法:1、在表上建立触发器,先取得表中有那些字段,可以执行一下语句:
ORACLE:
SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID;
或
SELECT COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名' ORDER BY COLUMN_ID;
注意:表明要区分大小写。
SQLSERVER:
select name from syscolumns where id=object_id('表名');
或
select count(*) from syscolumns where id=object_id('表名');
2、循环字段,看看那些字段被更新了。
循环用for,判断那些字段被更新了,用updating(字段名);
3、触发器完整代码如下
CREATE OR REPLACE TRIGGER TB_TASK_TRGGER
AFTER UPDATE
ON TB_TASK
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
vrupdate varchar2(100);
BEGIN
vrupdate:='';
FOR TEMPCOLUME IN (SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME = 'TB_TASK' ORDER BY COLUMN_ID)
LOOP
IF UPDATING(TEMPCOLUME.COLUMN_NAME)
THEN
dbms_output.put_line(TEMPCOLUME.COLUMN_NAME);
vrupdate:=vrupdate || ',';
END IF;
END LOOP;
UPDATE USERLIST SET duty=vrupdate where userid='1000000386';
EXCEPTION
WHEN OTHERS
THEN
RAISE;
END;
这篇关于oracle表执行更新操作的时候,那些字段被更新了的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01巧用 TiCDC Syncpoint 构建银行实时交易和准实时计算一体化架构
- 2024-05-01银行核心背后的落地工程体系丨Oracle - TiDB 数据迁移详解
- 2024-04-26高性能表格工具VTable总体构成-icode9专业技术文章分享
- 2024-04-16软路由代理问题, tg 无法代理问题-icode9专业技术文章分享
- 2024-04-16程序猿用什么锅-icode9专业技术文章分享
- 2024-04-16自建 NAS 的方案-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数-icode9专业技术文章分享
- 2024-04-14ansible 在远程主机上执行脚本,并传入参数, 加上remote_src: yes 配置-icode9专业技术文章分享
- 2024-04-14ansible 检测远程主机的8080端口,如果关闭,则echo 进程已关闭-icode9专业技术文章分享
- 2024-04-14result 成功怎么写-icode9专业技术文章分享