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!!!