ORA-014452 视图创建,便更或删除正在使用的临时表索引

 问题描述:

打算给我的session级临时表加索引,执行创建索引语句的时候报错ora-014452。

原因:简单来说就是你正在操作的该临时表还在被其他会话占用。

解决办法:

找出被哪些会话占用,将该会话的进程杀掉就可以了。

Step 1、先从DBA_OBJECTS/ALL_OBJECTS /USER_OBJECTS中查询到该表的OBJECT_ID:


    SELECT OBJECT_ID FROM USER_OBJECTS WHERE OBJECT_NAME='TMP_TEST';


Step 2、根据查到的OBJECT_ID知道使用该表的SESSION: 


    SELECT * FROM V$LOCK WHERE ID1=&OBJECT_ID;


Step 3、在从v$session视图中查到该session的SID和SERIAL#:


    SELECT * FROM V$SESSION WHERE SID=&SID;


Step 4、杀掉这些进程:


ALTER SYSTEM KILL SESSION 'SID, SERIAL#';

猜你喜欢

转载自blog.csdn.net/m0_37253968/article/details/87913474