SQL中的ORA-00054错误

时间:2017-10-05 07:27:42

标签: sql oracle

我收到了上述错误:

ORA-00054 error in SQL "Resource busy and acquire with NOWAT specified or timeout expired"

当我尝试运行以下命令时:

CREATE TABLE CONFERENCESESSION (
SESSIONID CHAR(4) NOT NULL,
BUILDINGNO CHAR(2),
ROOMNO CHAR(2) NOT NULL,
SPEAKERID CHAR(2),
SESSIONDATE DATE,
SESSIONPRICE NUMBER(4,2),
CONSTRAINT SESSIONID_PK PRIMARY KEY(SESSIONID),
CONSTRAINT BUILDINGNO_FK1 FOREIGN KEY (BUILDINGNO) REFERENCES BUILDING(BUILDINGNO),
CONSTRAINT ROOMNO_FK2 FOREIGN KEY (ROOMNO,BUILDINGNO) REFERENCES ROOM(ROOMNO,BUILDINGNO),
CONSTRAINT SPEAKERID_FK3 FOREIGN KEY (SPEAKERID) REFERENCES SPEAKER(SPEAKERID)
);

我不确定如何找到使用该对象的内容。

我正在使用Oracle SQL开发人员进行学校作业。

3 个答案:

答案 0 :(得分:0)

该错误通常是由锁定引起的,请尝试分解您创建表查询,如:

CREATE TABLE CONFERENCESESSION (
SESSIONID CHAR(4) NOT NULL,
BUILDINGNO CHAR(2),
ROOMNO CHAR(2) NOT NULL,
SPEAKERID CHAR(2),
SESSIONDATE DATE,
SESSIONPRICE NUMBER(4,2)
)
GO

ALTER TABLE CONFERENCESESSION ADD CONSTRAINT SESSIONID_PK PRIMARY KEY(SESSIONID)
GO
ALTER TABLE CONFERENCESESSION ADD CONSTRAINT BUILDINGNO_FK1 FOREIGN KEY (BUILDINGNO) REFERENCES BUILDING(BUILDINGNO)
GO
ALTER TABLE CONFERENCESESSION ADD CONSTRAINT ROOMNO_FK2 FOREIGN KEY (ROOMNO,BUILDINGNO) REFERENCES ROOM(ROOMNO,BUILDINGNO)
GO
ALTER TABLE CONFERENCESESSION ADD CONSTRAINT SPEAKERID_FK3 FOREIGN KEY (SPEAKERID) REFERENCES SPEAKER(SPEAKERID)
GO

单独运行每个批次,您将能够隔离导致错误的部分

答案 1 :(得分:0)

您可以使用此查询来检测锁定表格的人:

select distinct s.inst_id, s.sid, s.serial#, s.module, s.client_info, s.username, s.status, s.osuser, o.object_name
from gv$session s, gv$locked_object l, dba_objects o 
where l.object_id = o.object_id 
  and l.session_id = s.sid 
  and l.inst_id = s.inst_id
  and lower(o.object_name) like lower('%'||'&i_table_name'||'%') 
--and lower(s.module) like lower('%'||'&i_modul_name'||'%')  
--and s.username = upper('&i_schema_name')
order by o.object_name

如果您有数据库权限。

答案 2 :(得分:0)

固定,我可以通过我的uni网站删除当前会话。