日期:2014-05-17  浏览次数:21844 次

创建表产生死锁问题
在执行以下语句时提示错误.
drop   table   test_a;
create   table   test_a   tablespace   tb_space   storage(freelists   3)   as   select   *   from   t_module_table   where   1   =   2;

ORA-00604:   error   occurred   at   recursive   SQL   level   1
ORA-00060:   deadlock   detected   while   waiting   for   resource

此创建语句只有一个session处理,不存在多个同时处理的问题.t_module_table   是一个空表.按道理说应该不会出错。但产生的错误很奇怪.不知道有谁也遇到此类问题,还请指点一下。谢谢

------解决方案--------------------
ORA-00060: deadlock detected while waiting for resource
说明有人正在用这个表,所以你 不能drop,找出那个session在使用这个表,kill它即可drop


------解决方案--------------------
drop table test_a;
并没删除,需要提交,然后再create table ....
commit work;
------解决方案--------------------
select b.sql_text text,a.sid sid ,a.serial# sria#,a.username username, c.type type,a.machine machine
from v$session a ,v$sqltext b ,v$access c
where c.object=upper( '&1 ')
and c.type in ( 'TABLE ', 'PACKAGE ', 'PROCEDURE ', 'FUNCTION ', 'PACKAGE BODY ')
and a.sid=c.sid
and b.address = a.sql_address
and b.hash_value = a.sql_hash_value
order by a.sid,a.serial#,b.piece;

按照提示输入表名字,看看是否有session在使用?