问题描述
大家好,
首先,非常感谢您的所有帮助,并祝您新年2020愉快 :)
我想提请您注意以下行为,我在LiveSQL中进行了测试
(19.5.0.0.0 ):
备注:
在以前的版本中,从8i到11g,上面的自治事务引发了以下错误:
ORA-14450: 尝试访问已在使用中的事务临时表
此行为也在下面的线程中进行了描述:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1086033238621
以及汤姆·基特 (Tom Kyte) 的著作《专家一对一甲骨文》。
在版本19c (也可能在18c和12c中),行为发生了变化。
现在自治事务不再引发错误,但是结束自治事务的提交 (或回滚) 也结束了主事务,这是非常不寻常的,
结果,主事务插入的未提交行也被删除。
与旧版本相同,该错误ORA-14450仍记录在版本19c中。
我想问一下这种行为改变是故意的,还是可能碰巧是值得检查的bug?
这里是一个测试脚本来重现这种情况:
https://livesql.oracle.com/apex/livesql/s/jgc0expagu7afd36vhmmdwt6i
提前非常感谢 & 致以最良好的问候,
尤迪思·门策尔
首先,非常感谢您的所有帮助,并祝您新年2020愉快 :)
我想提请您注意以下行为,我在LiveSQL中进行了测试
(19.5.0.0.0 ):
create global temporary table gtt ( x int ) on commit delete rows / Table created. insert into gtt values (1) / 1 row(s) inserted. select * from gtt / X --- 1 declare pragma autonomous_transaction; begin insert into gtt values ( 2 ); commit; end; / Statement processed. select * from gtt / no data found
备注:
在以前的版本中,从8i到11g,上面的自治事务引发了以下错误:
ORA-14450: 尝试访问已在使用中的事务临时表
此行为也在下面的线程中进行了描述:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1086033238621
以及汤姆·基特 (Tom Kyte) 的著作《专家一对一甲骨文》。
在版本19c (也可能在18c和12c中),行为发生了变化。
现在自治事务不再引发错误,但是结束自治事务的提交 (或回滚) 也结束了主事务,这是非常不寻常的,
结果,主事务插入的未提交行也被删除。
与旧版本相同,该错误ORA-14450仍记录在版本19c中。
我想问一下这种行为改变是故意的,还是可能碰巧是值得检查的bug?
这里是一个测试脚本来重现这种情况:
https://livesql.oracle.com/apex/livesql/s/jgc0expagu7afd36vhmmdwt6i
提前非常感谢 & 致以最良好的问候,
尤迪思·门策尔
专家解答
从12.2开始,我肯定会看到您报告的行为。
我在内部询问,但我觉得这可能是一个错误。
我将添加更多信息。
更新1月14日:
错误30759170已被记录为此
我在内部询问,但我觉得这可能是一个错误。
我将添加更多信息。
更新1月14日:
错误30759170已被记录为此
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




