这两天在修改临时表的类型时,提示”attempt to create,alter or drop an index on temporary table already in use“的错误,由于临时表被占用锁住,因此,要查出使用该表的session的进程,并将该进程杀死,就可以重新操作临时表结构。操作方法如下,以下这个sql是比较好用的一种网上查找方法,就是几个系统表的链表查询。
第一步:查找SID和SERIAL#
select sid, serial# from v$session where sid in ( select sid from v$lock where id1 = ( select object_id from user_objects where object_name = upper('表名称') ) );
第二步
alter system kill session 'SID,SERIAL#';//SID和SERIAL#是根据第一步查出来的结果。