原因大体有两种
1、表被其它用户锁了,可以使用以下语句查看表是否被锁及被哪个session(sid,serial#锁了)。
   SELECT A.OWNER,   
         A.OBJECT_NAME,   
         B.XIDUSN,   
         B.XIDSLOT,   
         B.XIDSQN,   
         B.SESSION_ID,   
         B.ORACLE_USERNAME,   
         B.OS_USER_NAME,   
         B.PROCESS,   
         B.LOCKED_MODE,   
         C.MACHINE,   
         C.STATUS,   
         C.SERVER,   
         C.SID,   
         C.SERIAL#,   
         C.PROGRAM  
    FROM ALL_OBJECTS A,   
         V$LOCKED_OBJECT B,   
         SYS.GV_$SESSION C 
   WHERE ( A.OBJECT_ID = B.OBJECT_ID ) 
     AND (B.PROCESS = C.PROCESS )
   --  AND  
   ORDER BY 1,2  
然后你可以使用alter system kill session 'sid,serial#';杀掉锁表的进程
此中的sid及serial#是查锁语句中的。
2、如果你的权限不中,Oracle会掉相应的错误信息.

解决方案 »

  1.   

    还好主任法外开恩,放我们回来了,嘻嘻。
    但明天一大早就要赶过去。to shahand(有志青年):
    错误就是不能删除,一直在那里等待,所以程序不能运行下去;
    要说错误的代码,就是“time out”
    我肯定不是主外键的原因to  KingSunSha(弱水三千):
    我要去查查还有哪些会话to okcsdn(北飘) :
    我想应该是死锁在先,不能删除在后;to wanghai(汪海):
    你的话真是言简意赅,我明天一定要试试谢谢shahand,KindgSunSha,okcsdn,ropriest和hrb_qiuyb !
    谢谢你们的帮助!