解決ORA-14450:試圖訪問已經在使用的事務處理臨時表


在開發使用過程中,一個存儲過程用到表TMP_DA_GMS,允許程序的時候報錯,后台查詢到錯誤原因是因為表里有個字段需要設置為可以為NULL,在PL_SQL中直接編寫語句

alter table TMP_DA_GMS modify brid NUMBER(11) null;


執行,報錯“ORA-14450:試圖訪問已經在使用的事務處理臨時表”;

有一個解決辦法是去重新啟動下Oracle服務,但是這個方法不可取,用戶正在使用時,是不能隨便重啟數據庫服務的,后來在網上找到了處理辦法,但是只告訴怎么

殺死導致死鎖的會話,怎么找關於這個表的session卻沒有提到,這里做個說明:

--找到表對象

select * from dba_objects where object_name='TMP_DA_GMS'
--找到該對象導致的鎖的Session會話,並編寫語句
select  'alter system kill session '''||SID||','||SERIAL#||''';' from V$session  where SID in ( select sid from v$enqueue_lock t where t.type='TO' and  id1='99879' )
--執行生成后的SQL語句解除死鎖


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM