Oracle9.2.0.1中更新含有tigger表,时常报ORA-03113 ?

[复制链接]
查看11 | 回复5 | 2007-10-20 08:38:44 | 显示全部楼层 |阅读模式
这段时间,发现更新含有触发器器的表时,经常报错、中断连接:
SQL> update cua_cuaitem set cuaitem_name='test' where accset_id=2386 and cuaitem_id=7799;
update cua_cuaitem set cuaitem_name='test' where accset_id=2386 and cuaitem_id=7799
*
ERROR 位于第 1 行:
ORA-03113: 通信通道的文件结束

检查触发器状态是VALID,但是在all_probe_objects表中,该触发器的debuginfo字段为 'T' !
重新编译触发器后,debuginfo字段为 'F' ,表就能正常更新了:
SQL> alter trigger CUAITEM_TR_BU compile;
触发器已更改
SQL> update cua_cuaitem set cuaitem_name='test' where accset_id=2386 and cuaitem_id=7799;
已更新 1 行。

后经查,是pl/sql develop的debug选项会使debuginfo字段为 'T' !
我想问的是,为什么更新含有触发器的表,有时正常,有时就报ora-03113错误呢?
[ 本帖最后由 njhart2003 于 2008-7-15 13:55 编辑 ]
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
compile 的时候都有一个参数是不是debug,默认是nodebug,这个是debug的时候,应该是complie错了有相应的trace,你可以查查文档,我不觉得这个东西对执行有影响,没注意过
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
顶起来
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
感谢 oracledba 的提醒,原因已找到。
是pl/sql developer 的编译选项所致:
Tools----->Preferences----->Debuger----->Add debug information when compiling(把这个选项去掉即可)
前一段时间,我为省事,经常使用pl/sql developer来编译对象 .......
[ 本帖最后由 njhart2003 于 2008-7-4 08:58 编辑 ]
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
各位高手,我的问题并没有真正解决,因为我发现触发器的debuginfo字段为 'T' 并不是造成ora-03113错误的直接原因,只要重新编译问题就解决,不管这个debuginfo是不是'T'。
我尝试过sql_trace,没有捕捉到有用的信息;也尝试过logmnr,发现没有提交,日志里没有对应的信息。
不知道是不是Oracle的一个bug?没有metalink帐户,怎么查询oracle的bug方面的信息啊?

目前只是用作业定时编译触发器。
回复

使用道具 举报

千问 | 2007-10-20 08:38:44 | 显示全部楼层
njhart2003 ,哥们,你这个问题最后怎么解决的?原因是什么?谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行