【racle】ORA-04091: table xxx is mutating

简介:
在行级触发器中,不能查询自身表
YANG@yangdb-rac3> create or replace trigger t_1 
  2  after insert or update on t1
  3  for each row
  4  declare
  5   a number;
  6   begin 
  7  select count(*) into a from t1;
  8  update t_count set count =a;
  9  end t_1;
 10  /
Trigger created.
YANG@yangdb-rac3> insert into t1 values (1,'yangql');
insert into t1 values (1,'yangql')
            *
ERROR at line 1:
ORA-04091: table YANG.T1 is mutating, trigger/function may not see it
ORA-06512: at "YANG.T_1", line 4
ORA-04088: error during execution of trigger 'YANG.T_1'
    在触发器中操作触发此触发器的表,用PRAGMA AUTONOMOUS_TRANSACTION选项,将操作设置为自治事务.
     DECLARE整个块都是属于父事务的,自治事务从离PRAGMA后的第一个BEGIN开始,只要此BEGIN块仍在作用域,则都属于自治事务。例如在DECLARE模块中声明一个写数据库的函数,则此函数虽然在自治事务所在存储过程执行,但其属于父事务;而自治事务中调用的任何函数和存储过程、激发的任何触发器等均为此自治事务的一部分,保持与父事务的隔离。
YANG@yangdb-rac3> create or replace trigger t_1 
  2    after insert or update on t1
  3   for each row
  4   declare
  5     a number; 
  6      pragma autonomous_transaction;
  7    begin
  8     select count(*) into a from t1;
  9     update t_count set count =a;
 10     commit;
 11   end t_1;
 11  /
Trigger created.
YANG@yangdb-rac3> insert into t1 values (1,'yangql');
1 row created.
YANG@yangdb-rac3> 
相关文章
|
3月前
|
运维 监控 Java
Tomcat配置参数connection-timeout的详细解析和应用讨论
`connection-timeout` 的配置需要根据实际的应用场景、服务器性能、网络环境以及用户行为来决定。因此,开发和运维团队通常需要结合应用特点和监控数据,经过一系列的测试和调优,来确定一个既能保证用户体验,又能维护服务器稳定性和安全性的最优值。
441 0
|
存储 Oracle 关系型数据库
oracle服务器存储过程中调用http
通过配置权限、创建和调用存储过程,您可以在Oracle数据库中使用UTL_HTTP包发起HTTP请求。这使得Oracle存储过程可以与外部HTTP服务进行交互,从而实现更复杂的数据处理和集成。在实际应用中,根据具体需求调整请求类型和错误处理逻辑,以确保系统的稳定性和可靠性。
582 0
|
JavaScript
js金额数字格式化
本文介绍了两种实现数字格式化的方法:字符串操作与正则表达式。首先,通过递归地在每三位数字间插入逗号来格式化整数。接着,扩展该功能以支持自定义小数位数及分隔符,适用于更广泛的场景。最后,展示了如何利用正则表达式简化上述过程,实现相同的功能。
402 0
|
SQL Oracle 关系型数据库
Oracle之Fetch关键字的使用
Oracle之Fetch关键字的使用
563 1
|
负载均衡 Java API
|
存储 SQL JSON
5、DataX(DataX简介、DataX架构原理、DataX部署、使用、同步MySQL数据到HDFS、同步HDFS数据到MySQL)(一)
5、DataX(DataX简介、DataX架构原理、DataX部署、使用、同步MySQL数据到HDFS、同步HDFS数据到MySQL)(一)
【解决方法】springMvc ResponseEntity 下载文件损坏问题解决方法
用ResponseEntity来导出Excel,Excel乱码,用FileOutputStream导出正常,ByteArrayOutputStream乱码
|
应用服务中间件 容器
ServletConfig、ServletContext概述、配置及ServletContext的三个作用
ServletConfig、ServletContext概述、配置及ServletContext的三个作用
420 0
|
SQL Oracle 关系型数据库
Oracle数据库的显示提交与隐式提交,针对oracle工具的自动提交机制
Oracle数据库的显示提交与隐式提交,针对oracle工具的自动提交机制
720 0

热门文章

最新文章