问题标签 [ora-04091]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 触发器编译正常但在更新时遇到 ORA-04091
1.)我为一个表编写了一个触发器,grades
如下所示:
它编译得很好。我的 2 列表示例grades
如下:
当我尝试按如下方式测试此触发器时,问题就出现了:
它给了我一个
错误 ORA-04091:表 GRADES 正在变异,触发器/函数可能看不到它。重写触发器(或函数),使其不读取该表。
2.) 另外,我计划在我的触发器中包含另一个 IF 语句,以检查输入的新 Grade_percent 是否在 0 和 1 之间。如果是,那么它应该将该十进制值转换为整个百分比值,例如:
这是我到目前为止所拥有的,我不确定如何编写代码的第二行:
第二行应该将从 0-1 插入的任何值转换为整数百分比,例如:0.7 转换为 70% 并将其插入该行的列中。但是,这是一个语法错误,我不知道如何从这里开始。
任何帮助是极大的赞赏。谢谢你。
sql - 如何在触发器中使用更新表中的数据?
所以我有这两张表:
每当我插入一个新的CURRENCY
,我想EXCHANGE_RATES
在所有以前CURRIENCIES
的和一个新的之间创建一个新的。假设我的表中只有一种货币:
现在要插入一个新的:
我的目标是插入EXCHANGE_RATE
行:
最好的方法是什么?我试过使用AFTER INSERT OR UPDATE
触发器:
但它不起作用,因为我必须查询CURRENCY
表,正在更新,我最终得到 ORA-04091。
这样做的正确方法是什么?
sql - 在触发之前导致 ORA-04091
我刚开始使用 SQL 并遇到问题:我想编写一个更新前触发器,但是当我尝试更新表时,我总是得到那个错误 (ORA-04091)。我真的不明白为什么;因为我认为更新前的触发器对变异表没有问题。
oracle - ORA-04091 错误使用触发器保持两个表同步
我需要在 syc 中保留两个表,因此当在表 A 中插入行并且其中一个列具有一定条件时,应在表 B 中添加记录。此外,当在表 B 中插入行时,应在表 A 中添加记录。如何这使用触发器完成。我在插入后对两个表都有触发器,但给出了 ORA-04091 错误。
oracle - ORA-04091 表正在变异
我有以下 2 个表:运行:
和命令:
要求实现如下逻辑:当运行中的所有订单状态相同时,应更新运行状态(与其订单相同)。
例如,当order_id = 3
状态设置为时'finished'
,run_id=1
状态也应设置为'finished'
。与order_id = 4
将状态设置'active'
为时相同。run_id = 2 should
'active'
负责检查订单状态并相应更新运行状态的程序:
我已经创建了触发器
逻辑失败,因为错误:ORA-04091: table ORDERS is mutating, trigger/function may not see it
。触发器正在调用一个过程,该过程查询调用触发器的同一个表。
解决此类问题的最佳方法是什么?
oracle - 我试图编写一个触发器,但它在 PL/SQL 中给出了这样的错误
我的代码是:
但它没有给出正确的输出。
错误:
ORA-04091:表 SQL_JUVARSIUJECZFPSBAIHPOCYEW.TRANSACTION 正在变异,触发器/函数可能看不到它
ORA-06512:在“SQL_JUVARSIUJECZFPSBAIHPOCYEW.TRIG_9_2017_2_60_107”,第 8 行
ORA-06512:在“ SYS.DBMS_SQL