oracle 刪除臨時表時,有時會出現:ORA-14452: 試圖創建, 更改或刪除正在使用的臨時表中的索引。就算執行truncate table ‘臨時表’操作也不行。
現在總結一個方法,可以先找到臨時表的sid 和serial# 然後通過 ‘sid,serial# ’去刪除臨時會話,再去刪除臨時表。
第一步:
SELECT sid, serial# FROM v$session
WHERE sid = (SELECT sid FROM v$lockWHERE id1 = (SELECT object_id FROM user_objects
WHERE object_name = upper('臨時表名稱')
)
);
第二步:
ALTER system kill session 'sid,serial#';
這裏的‘sid,serial#’是第一步查出來的結果;
第三步:
drop table '臨時表名稱';
就這麼簡單,bingo!!!