Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,出现原因,是因为在更新的的表和读取的表是同一个表。CREATE or replace TRIGGER T_userupdateT BEFORE update ON T_user REFERENCING
千家信息网最后更新 2026年11月01日Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)
出现原因,是因为在更新的的表和读取的表是同一个表。
CREATE or replace TRIGGER T_userupdateT BEFORE update ON T_user REFERENCING OLD AS old NEW AS N_ROW FOR EACH ROW DECLARE U_xtfidemp1 varchar(36); u_xtempcode1 varchar(20); u_xtempcodeCount int:=0; U_xtfidempCount int:=0; u_id1 int:=0; BEGIN U_xtfidemp1:=:N_ROW.U_xtfidemp; u_xtempcode1:=:N_ROW.u_xtempcode; u_id1:=:N_ROW.u_id; select count(u_xtempcode) into u_xtempcodeCount from eas.T_user where u_xtempcode is not null and u_xtempcode=u_xtempcode1 and u_id<>u_id1; select count(U_xtfidemp) into U_xtfidempCount from eas.T_user where U_xtfidemp is not null and U_xtfidemp=U_xtfidemp1 and u_id<>u_id1; IF u_xtempcodeCount>0 or U_xtfidempCount>0 THEN RAISE_APPLICATION_ERROR(-20001, 'eas.T_user u_xtempcode,U_xtfidemp,U_GZCode更新数据时有错误,有重复'); END IF; end;
出现错误时,是因为触发器在T_userupdateT在T_user上,触发器内部有读取了T_user所以有错误。
修改如下
CREATE or replace TRIGGER T_userupdateT BEFORE update ON T_user REFERENCING OLD AS old NEW AS N_ROW FOR EACH ROW DECLARE U_xtfidemp1 varchar(36); u_xtempcode1 varchar(20); u_xtempcodeCount int:=0; U_xtfidempCount int:=0; u_id1 int:=0; PRAGMA AUTONOMOUS_TRANSACTION;BEGIN U_xtfidemp1:=:N_ROW.U_xtfidemp; u_xtempcode1:=:N_ROW.u_xtempcode; u_id1:=:N_ROW.u_id; select count(u_xtempcode) into u_xtempcodeCount from eas.T_user where u_xtempcode is not null and u_xtempcode=u_xtempcode1 and u_id<>u_id1; select count(U_xtfidemp) into U_xtfidempCount from eas.T_user where U_xtfidemp is not null and U_xtfidemp=U_xtfidemp1 and u_id<>u_id1; IF u_xtempcodeCount>0 or U_xtfidempCount>0 THEN RAISE_APPLICATION_ERROR(-20001, 'eas.T_user u_xtempcode,U_xtfidemp,U_GZCode更新数据时有错误,有重复'); END IF;COMMIT; end;
多了PRAGMA AUTONOMOUS_TRANSACTION;COMMIT;两句
以上这篇Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
触发器
错误
更新
数据
方法
变化
内容
原因
就是
参考
支持
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州为想互联网科技有限公司
互联网佳科技有限公司
互联网科技卖菜
美国互联网科技巨头监管
互联网科技英文
亿策互联网科技
鑫亿盛互联网科技
苏州大垚互联网科技
互联网科技公司名称
左右互联网络科技
互联网经济与金融科技
互联网科技产业特征
互联网科技大奖都有哪些公司
996高科技互联网公司
翼展科技 首家互联网医院
互联网科技快讯热点
宁波跨境商互联网科技有限公司
信承诺互联网科技有限公司
互联网科技品牌
利用互联网等科技手段
互联网金融与金融科技
互联网科技革命
深圳市运趣互联网科技有限公司
互联网科技研发水平
燊美集互联网科技有限公司
江苏苏星互联网科技有限公司
广州百诚互联网科技有限公司官网
艺电能源互联网科技有限公司招聘
云南互联网科技学费
互联网高科技绘画