ORA-14450"尝试访问已使用的事务临时表",没有自治事务

use*_*978 3 oracle transactions

我无法提供具体的代码,因为解决方案是分类的.我想问一下,在某些情况下,是否可能有错误ORA-14450"尝试访问已经在使用的事务临时表"而没有任何自治事务或DDL代码.

这只会偶尔发生一次.该应用程序使用数据库过程和oracle表单.

提前致谢

mmm*_*pie 11

ORA-14450表示您在临时表上有阻塞会话.找到阻止会话并在需要时将其终止.

SELECT * FROM v$lock
  WHERE id1 = (SELECT object_id FROM all_objects WHERE owner =<schema_name> AND object_name =<glb temp table>)

SELECT * FROM v$session WHERE sid =<above query result>

ALTER SYSTEM KILL SESSION '<sid>,<serial#';
Run Code Online (Sandbox Code Playgroud)

信用


小智 5

如果您的GTT是使用COMMIT PRESERVE ROWS子句创建的,那么如果没有锁定,它将仍然无济于事。用户在此表上执行DML并完成事务后,该表仍在使用中。如果提交事务,它将不会显示在v $ lock中。