oracle行触发器不能读原表的一种解决方法

Oracle触发器的一点总结-表发生了变化,触发器或函数不能读它 这个报错提示折腾了一个下午,幸好有度娘,这里总结一下经验~ 1.场景说明:在A表新建触发器,修改或插入记录后,修改B表关联的记录,这种场景若不是通过程序代码来实现,触发器是目前想到的解决方法。 2.反馈报错:【表发生了变化,触发器或函数不能读它】,这数据库提示可给人一头雾水,不够清晰明白,差评~ 3.问题分析:网上查了下,大概是由于Oracle执行了表记录更新后,还需要commit操作,才算事务结... 阅读详情
oracle的触发器分为行触发器和语意级触发器

语意级触发器没怎么弄过,现在写一下对行触发器的感想。

行触发器:
create or replace trigger trigger_name before/instead of/after insert or update or delete on table_name for each row

行触发器可以使用 :new和:old但是我发现行触发器的一个问题,就是如果在这个表上建行级触发器,那么就不能对这个表进行查询啥之类的操作,否则就会报ora-04091,说表内容有变化,然后查询报错。

而我正需要在行触发器上,还得去查这张表,所以就很是头痛,最后用了个很烂的方法解决了。(大家如果谁有好的方法,希望能够告诉我,先感谢一下)我新建了一张(表b)和这张表(表a)一模一样的表,然后在新建的这张表(表b)上建了一个视图b_v,然后在这个视图里面建触发器,用instead of的触发器(好像视图里只能用这种的触发器),然后我发现对这个视图建立的行级触发器,可以继续查询这个视图。所以问题就解决了。我对原表建了个触发器,然后使他的增删改对视图进行增删改,然后视图的触发器再去做具体的事,对我新建的那张表操作。这样终于不报可恶的ora-04091的错误了。问题得以解决。

什么是论文的创新点?公式化描述算是创新点吗? 写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。 阅读详情

相关推荐

批量读取_MCGS触摸屏如何实现批量读取modbus数据的方法?

前两天,在一个QQ群里,有同行的朋友问,在MCGS中如何实现批量读取数据,因为他当时面临设备,通讯协议才是MODBUS RTU,同时厂家说地址不能分开读,必须是连续的。鉴于他提供的消息是能够设置的地方都试过了。为此,我直接告诉通过脚本,批量读取的方案。那么这个方案究竟如何实现?且看我下面慢慢道来。一、工具1.modsim:仿真PLC或者第三方设备。2.MCGS组态软件3.串口软件:在电脑中生成两不...

weixin_32511509的博客 8161

oracle触发器中不能出现当前表,Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)...

出现原因,是因为在更新的的表和读取的表是同一个表。CREATE or replace TRIGGER T_userupdateT BEFORE update ON T_user REFERENCING OLD AS old NEW AS N_ROW FOR EACH ROWDECLARE U_xtfidemp1 varchar(36);u_xtempcode1 varchar(20);u_xte...

weixin_35062801的博客 575

MSDN Win10镜像缺少驱动?这里有全面解决方案

针对MSDN Win10镜像缺少驱动的问题,本文提供了四种解决方案:厂商官网下载驱动程序、利用Windows更新获取驱动、使用第三方驱动更新工具以及使用集成驱动的Win10系统镜像。每种方案都有其优缺点,用户可以根据自己的需求和实际情况选择合适的方案。建议优先考虑官方渠道:官方渠道下载的驱动程序稳定可靠,是解决问题的首选方案。谨慎选择第三方工具:使用第三方工具时,务必选择信誉好、无广告捆绑的工具,并注意保护个人隐私和计算机安全。备份重要数据:在进行系统安装或更新前,务必备份重要数据以防丢失。

nntxthml的博客 1529

oracle触发自身表,【案例】Oracle报错ORA-04091 行级触发器实现查询自身表数据

天萃荷净开发DBA反映,在使用Oracle触发器查询数据时报错ORA-04091,分析原因为行级解发器查询自身表数据时报错原因:在行级触发器中,不能查询自身表场景重现:通过触发器实现test_count表中统计test表中行数--创建子表create table TEST(id NUMBER, name varchar2(100), primary key (id));--创建统计表create ...

weixin_39559486的博客 1064

无需UMAT:基于Abaqus内置模型实现形状记忆聚合物结构的热-力耦合仿真

本文详细介绍了如何利用Abaqus内置模型实现形状记忆聚合物(SMP)的热-力耦合仿真,无需编写复杂的UMAT子程序。通过广义Maxwell模型和Neo-Hookean模型的组合应用,结合完整的热-力耦合分析流程,帮助工程师高效模拟SMP的形状记忆行为。文章还提供了工程应用案例和常见问题解决方案,为相关领域的研究和设计提供实用指导。

weixin_34005090的博客 117

攻防世界 misc题GFSJ1129-【您看我还有机会吗?】

我们发现了隐藏内容,一开始我以为那个英文就是flag,提交后发现不对,然后我想只有一张图片然后图片上的隐写内容又不是flag,那必定还有什么文件被隐藏了,于是我们打开VMware并启动Ubuntu,使用binwalk分析一下有没有隐藏文件,我们要在Terminal中分析,如下。我们发现里面有一个flag.txt文件,我们尝试提取里面内容,但发现又要密码,我们想起了之前图片上的隐藏内容,我们将那段英文输入(包括空格和符号,在VMware中输入密码不会有显示,你看到的就像没输入一样),然后我们看到如下。

大数据专业,关注 AI 安全与数学建模。记录 Web 安全、对抗攻击、隐私保护等安全实践,以及从经典模型到智能方法的建模思考。用数学思维理解 AI,用 AI 方法反哺安全与建模。 1099

oracle触发器 触发事件,Oracle触发器学习记录

1、这是oracle的规定,不能对执行触发器的表进行操作。可以对new.xxx进行操作啊,对于oracle行级触发器(for each row),不能对本表做任何操作,包括读取原则:在before insert触发器中,可以实现对本表的访问;在after insert触发器中,不能实现对本表的访问;在before/after update/delete触发器中,都不能实现对本表的访问其实原因很简单...

weixin_39844426的博客 261

Unity3D实现自定义河流路径或泥石流路径

此工具是一个插件,插件很好用,可以根据地形编辑河流的走向以及宽度,也可以发挥想象编辑成其他的效果,比如泥石流效果,岩浆效果,小溪,或者大江或者大河等等博客将会介绍可以编辑河流的工具的使用。希望这篇博客对Unity的开发者有所帮助。大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。提示:以下是本篇文章正文内容,下面案例可供参考本次总结的就是工具的使用, 有需要会继续增加功能不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒!

心疼你的一切博客 5269

oracle触发器更新当前表

装载注明:http://yuexiaodong.iteye.com/blog/1891589          总是有这样的需求,当更新某个表的某条记录,然后需要对该表的某个字段进行更新,通过使用触发器即可完成这项工作。具体思路就是:首先建立一个临时表,然后在行触发器中记录当前操作的记录,然后在语句触发器中更新当前表。这样做的原因是,oracle对行触发器进行了限制,不能对当前表操作(具体...

yue0706的博客 2566

Python图像处理之光斑分析

光斑是工程中经常出现的图像数据,其特点是目标明确,分布清晰。对光斑图像的分析,主要包括质心定位、目标截取以及半径拟合等。

微小冷的学习笔记 2857

PyCharm安装PyQt5及工具详细教程

PyCharm是一款功能强大的Python集成开发环境(IDE),而PyQt5是一个用于创建GUI应用程序的流行Python库。在本教程中,我将指导您如何在PyCharm中安装PyQt5及其相关工具,并提供相应的源代码示例。安装完成后,启动PyCharm并创建一个新的项目。为了隔离项目的依赖项,我们建议在PyCharm中使用虚拟环境。在创建项目的过程中,您可以选择创建新的虚拟环境或使用现有的环境。根据您的操作系统,选择适当的版本并按照安装向导的指示进行安装。首先,您需要下载并安装PyCharm。

CfProgram的博客 589

oracle中的行触发器,oracle 行触发器与语句触发器的区别

oracle 行触发与语句触发的区别:1、行触发器有 for each row子句。语句触发器没有for each row 子句。2、行触发器,可以有 when 作为触发限制,可以使用new/old。语句触发器不能有when 作为触发限制。3、行触发器:对应DML语句所影响到的表中的每一行,触发器都要执行一遍。4、语句触发:对应DML语句所影响到的表中的所有行,触发器只执行一遍。例子:--测试表c...

weixin_29334463的博客 269

人群仿真软件:AnyLogic_(12).AnyLogic高级功能应用

在AnyLogic中,自定义行人行为是通过编写Java代码来实现的。行人行为的自定义可以包括行走路径的选择、速度变化、交互行为等。这使得仿真模型更加灵活和真实。

kkchenjj的博客 1062

oracle表触发器更新数据库,oracle触发器更新目前表

装载注明:http://yuexiaodong.iteye.com/blog/1891589总是有这样的需求,当更新某个表的某条记录,然后需要对该表的某个字段进行更新,通过使用触发器即可完成这项工作。具体思路就是:首先建立一个临时表,然后在行触发器中记录当前操作的记录,然后在语句触发器中更新当前表。这样做的原因是,oracle对行触发器进行了限制,不能对当前表操作(具体如下:删除的行触发器不允许任...

weixin_30954817的博客 1173

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Oracle-触发器备份表数据

Oracle-触发器备份表数据

IT从业者 4012

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

oracle 行触发器与语句触发器的区别

oracle 行触发与语句触发的区别: 1、行触发器有 for each row子句。语句触发器没有for each row 子句。 2、行触发器,可以有 when 作为触发限制,可以使用new/old。语句触发器不能有when 作为触发限制。 3、行触发器:对应DML语句所影响

zzsyzjb的专栏 599

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

oracle触发器与sql语句,[转载]oracle 行触发器与语句触发器的区别

oracle行触发与语句触发的区别:1、行触发器有 for each row子句。语句触发器没有foreach row 子句。2、行触发器,可以有 when 作为触发限制,可以使用new/old。语句触发器不能有when 作为触发限制。3、行触发器:对应DML语句所影响到的表中的每一行,触发器都要执行一遍。4、语句触发:对应DML语句所影响到的表中的所有行,触发器只执行一遍。例子:--测试表cre...

weixin_31347649的博客 183

ora 04091:表XX发生了变化,触发器/函数不能读它(lin49940)

最近为了更新一个功能, 但是又不想动到原先功能的后台代码,  所以选择了触发器, 触发器我总共就写过4个而已, 我以前也很抵触触发器的.        oracle 的触发器有表触发器和行触发器, 我用的是行触发器, 并且在这个触发器中需要修改到其他行的数据(例如树结构数据, 子项目要修改父项目的状态), 写完触发器后, 编译没有错误, 但是在触发器执行后报了 "ORA-04091:表XX发生了

lin49940的专栏 1809

Oracle触发器trigger详解

触发器相关概念及语法 概述 本篇博文中主要探讨以下内容: 什么是触发器 触发器的应用场景 触发器的语法 触发器的类型 案例 数据: 触发器的概念和第一个触发器 数据库触发器是一个与表相关联的,存储的PL/SQL 语句。 每当一个特定的数据操作语句(insert update delete)在指定的表上发出时,Oracle自动执行触发器中定义的语句序列。 举个简单的例子: 当员...

weixin_41649106的博客 6万+

Oracle触发器的行触发和表级触发

在使用触发器时,需要根据具体的需求选择适合的触发器类型。Oracle中的行触发器(Row-Level Trigger)和表级触发器(Table-Level Trigger)是两种不同类型的触发器,它们在数据库操作时被触发并执行相应的操作。行触发器可以针对每一行数据进行操作,因此在每行数据发生变化时,行触发器都会被执行。需要注意的是,在创建触发器时需要指定触发器的类型和适用范围,以及触发器的操作和条件等。After触发器在表的数据更新之后触发,而Before触发器在表的数据更新前触发。

weixin_42095178的博客 541

ORACLE触发器概述之【行触发器】【weber出品】

1. 行触发器的定义 行触发器是指执行DML操作时,每作用一行就触发一次的触发器。审计数据变化时,可以使用行触发器 2. 建立行触发器的语法如下: create or replace trigger trigger_name timing event1 [or event2 event3] on table_name (referencing old as old | new as...

weixin_34323858的博客 164

PL/SQL_触发器2(行触发器)

行触发器是指执行DML操作时,每作用一行就触发一次的触发器。审计数据变化时,可以使用行触发器。建立行触发器的语法如下: CREATE [OR REPLACE] TRIGGER trigger_name timing event1 [OR event2 OR event3] ON table_name [REFERENCING OLD AS old | NEW AS new] FOR EACH R

com185272358的专栏 798

Oracle中的触发器,以及行触发器和语句触发器的区别

触发器 触发器语法 CREATE [OR REPLACE] TIGGER 触发器名 触发时间 触发事件 ON 表名 [FOR EACH ROW] BEGIN pl/sql 语句 END 其中: 触发器名:触发器对象的名称。 由于触发器是数据库自动执行的,因此该名称只是一个名称,没有实质的用途。 触发时间:指明触发器何时执行,该值可取: before---表示在数据库动作之前触发器执行; after---表示在数据库动作之后出发器执行。 触发事件:指明哪些数据库动作会触发此触

有所为的博客 910

PLSQL入门与精通(第38章:DMLSQL语句触发器和行触发器的语法和例子)

上次简单的解释了一下DML触发器的特点: DML触发器有全表触发器和行触发器,全表触发器针对的是整个DML语句,行触发器对DML操作的每一行数据。 这次详细说明一下DML触发器的语法。 首先是“全表触发器”最低限度的语法: <全表触发器定义语法> 1 CREATE OR REPLACE TRIGGER 触发名 2 时机 3 事件 4 ON 表名称 5 无名PL/SQL块 解释如下: ・第2行的时机指定“BEFORE”或“AFTER”。如果是BEFORE,则在DML处理之前启动触发器,如果是AFTER,则在

niusr_1980_01的博客 372

oracle 触发器详解

触发器是指存放在数据库中,并被隐藏执行的存储过程。在Oracle8i之前,只允许基于表或视图的DML操作(insert,update,delete)建立触发器,在oracle8i之后,不仅支持DML操作,也允许基于系统事件(启动数据库,关闭数据库,登录)和DDL操作建立触发器。  一、触发器简介     触发器是指隐含执行的存储过程,它可以使用PL/SQL,java和C进行开发,当发生特定事件

2270
上一篇: 将properties文件打入jar包,并能读取
下一篇: oracle特殊字符
cz_study_java
博客等级 码龄16年 5粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值