ora-04091问题的解决
2008-03-22 16:33
363 查看
在某表orginfo上建立触发器,其中包括以下动作:
增删改此表的记录时,需要查询此表,甚至改写此表的其他记录。报告“ora-04091:表已经被修改,对于触发器/函数不可见”
查看oracle developer's guide ,在其中trigger的章节搜索ora-04091,根据说明,对于使用了for each row 的触发器,做了DML操作(delete,update,insert)未提交时不允许其他PL/SQL对此表的DML操作以及查询,因为此时数据不一致。
解决办法:新建与orginfo结构完全相同的临时表tmp_orginfo,使得在orginfo上的触发器读写tmp_orginfo,再用tmp_orginfo上的触发器写回orginfo,解决ora-04091问题。
增删改此表的记录时,需要查询此表,甚至改写此表的其他记录。报告“ora-04091:表已经被修改,对于触发器/函数不可见”
查看oracle developer's guide ,在其中trigger的章节搜索ora-04091,根据说明,对于使用了for each row 的触发器,做了DML操作(delete,update,insert)未提交时不允许其他PL/SQL对此表的DML操作以及查询,因为此时数据不一致。
解决办法:新建与orginfo结构完全相同的临时表tmp_orginfo,使得在orginfo上的触发器读写tmp_orginfo,再用tmp_orginfo上的触发器写回orginfo,解决ora-04091问题。
相关文章推荐
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 问题解决
- ORA-01092问题的解决
- ora-01102问题的解决
- [转载]ORA-00942 表或视图不存在 问题的解决
- ora-02049解决一例 数据库死锁问题
- 管理oracle11g内存设置 解决ora-02097 ora-00838 ora-00845报错问题
- ORA-00119 ORA-00132问题解决
- oracle11g用户登录时被锁定问题的解决方法 (ora-28000 the account is locked)
- ORA-27101: shared memory realm does not exist问题的解决
- 连接oracle数据库,提示ORA-00162: external dbid length 17 is greater than maximum (16) ,问题解决
- 解决ORA-00923 提示未找到要求的Form关键字问题
- Oracle 临时表解决ORA-22992问题
- ora-14550问题解决
- ORA-00911: 无效字符 问题和解决
- ora-14550问题解决
- 解决oralce 11g dg搭建报错:ORA-16664、ORA-16714、ORA-16810问题--转
- Navicat for Oracle 11g 解决ORA-28547问题
- 如何解决ORA-01843与NLS_DATE_FORMAT问题
- ORA-01000: 超出打开游标的最大数 问题的分析和解决
- ORA-06531: 引用未初始化的收集 的问题解决