Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)
发布时间 - 2026-01-11 00:33:00 点击率:次出现原因,是因为在更新的的表和读取的表是同一个表。
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触发器表发生了变化 触发器不能读它的解决方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# oracle
# 触发器
# oracle 存储过程、函数和触发器用法实例详解
# Oracle中触发器示例详解
# 详解oracle中通过触发器记录每个语句影响总行数
# Oracle触发器trigger详解
# Oracle触发器用法实例详解
# oracle 调试触发器的基本步骤
# 是因为
# 给大家
# 希望能
# 两句
# 这篇
# 必看
# 解决方法
# 小编
# 大家多多
# 有错误
# 出现错误
# 发生了
# DECLARE
# ROW
# N_ROW
# u_xtempcodeCount
# int
# varchar
# REFERENCING
# brush
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何登录建站主机?访问步骤全解析
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
如何利用DOS批处理实现定时关机操作详解
如何快速搭建高效香港服务器网站?
EditPlus 正则表达式 实战(3)
Laravel怎么使用Intervention Image库处理图片上传和缩放
如何撰写建站申请书?关键要点有哪些?
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解
Laravel如何实现用户注册和登录?(Auth脚手架指南)
Android利用动画实现背景逐渐变暗
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
如何将凡科建站内容保存为本地文件?
Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率
Laravel控制器是什么_Laravel MVC架构中Controller的作用与实践
如何在建站主机中优化服务器配置?
java ZXing生成二维码及条码实例分享
如何快速上传建站程序避免常见错误?
phpredis提高消息队列的实时性方法(推荐)
Laravel PHP版本要求一览_Laravel各版本环境要求对照
HTML透明颜色代码怎么让图片透明_给img元素加透明色的技巧【方法】
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
javascript中对象的定义、使用以及对象和原型链操作小结
js实现点击每个li节点,都弹出其文本值及修改
html5的keygen标签为什么废弃_替代方案说明【解答】
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
Linux系统命令中tree命令详解
北京的网站制作公司有哪些,哪个视频网站最好?
如何快速搭建高效WAP手机网站吸引移动用户?
千库网官网入口推荐 千库网设计创意平台入口
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
如何在云服务器上快速搭建个人网站?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
android nfc常用标签读取总结
jQuery中的100个技巧汇总
Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
如何用JavaScript实现文本编辑器_光标和选区怎么处理
Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
网站制作价目表怎么做,珍爱网婚介费用多少?
详解Android图表 MPAndroidChart折线图
深圳网站制作的公司有哪些,dido官方网站?
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
油猴 教程,油猴搜脚本为什么会网页无法显示?
米侠浏览器网页背景异常怎么办 米侠显示修复

