ORA-00054: the resource is busy and is obtained with the es NOWAIT

DBA Geral (instalação, configuração do banco, scripts do Sql*Plus, shell scripts, batch scripts, etc...)
Post Reply
marcos.santos
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Posts: 13
Joined: Wed, 01 Oct 2008 7:39 pm
Location: Jundiaí
Contact:

Good afternoon colleagues;
I am tempted to update one of my tables with the following syntax:

ALTER TABLE CUSTOMER ADD Phone Varchar (13);

But is giving this error:

OR-00054: The resource is occupied and is obtained with the specified NOWAIT
I would like to know by That and how to solve this problem, thank you!


Environment information:
* Oracle version: 1GG
* Operating system: XP
: -
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Posts: 115
Joined: Sat, 10 Nov 2007 2:54 pm
Location: rio de janeiro
Att,


Diego Leite
DBA ORACLE

Friend,


This is a shared lock.

When issuing the INSERT, DELETE, UPDATE, and SELECT for Update commands on the Table Oracle creates a shared latch and a unique. While you do not finalize the transaction (Commit or Rollback;). You can not update the table with a DDL command. What can be done is the table ataulo in the same session reminding that when issuing a DDL after a DML this transaction will be validated with a Commit;

follows an example. Of some tests I did some time ago. By chance it was in this own forum ..

Sessao 1

Select all

SQL> SHOW USER  
USER é SESSAO1  
 
SQL> SELECT * FROM V$VERSION;  
 
BANNER  
----------------------------------------------------------------  
Oracle Database 10g Release 10.2.0.1.0 - Production  
PL/SQL Release 10.2.0.1.0 - Production  
CORE 10.2.0.1.0 Production  
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production  
NLSRTL Version 10.2.0.1.0 - Production  
 
 
 
SQL> create table teste as select * from dual;  
 
Tabela criada.  
 
 
SQL> insert into teste values('1');  
 
1 linha criada.  
 
SQL> commit;  
 
Commit concluído.  
 
SQL> update teste set DUMMY='2';  
 
2 linhas atualizadas. 


Prompt ==== ========= Sessation 2 Oracle 10g =====================

SESSAO 2

Select all

SQL> SHOW USER  
USER é SESSAO2  
 
SQL> SELECT * FROM V$VERSION;  
 
BANNER  
----------------------------------------------------------------  
Oracle Database 10g Release 10.2.0.1.0 - Production  
PL/SQL Release 10.2.0.1.0 - Production  
CORE 10.2.0.1.0 Production  
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production  
NLSRTL Version 10.2.0.1.0 - Production  
 
 
 
SQL> select * from teste;  
 
D  
-  
X  
1  
 
SQL> alter table teste add c date;  
alter table teste add c date  
*  
ERRO na linha 1:  
ORA-00054: o recurso está ocupado e é obtido com o NOWAIT especificado


I hope I have helped!
Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 1 guest