Kiran Dalvi
- 05 Sep, 2023
- 0 Comments
- 57 Secs Read
ORA-00054: resource busy and acquire with NOWAIT specified
Solution 1: Step 1: Identify the session which is locking the object
select a.sid, a.serial#
from v$session a, v$locked_object b, dba_objects c
where b.object_id = c.object_id
and a.sid = b.session_id
and OBJECT_NAME='EMP';
Step 2: kill that session using
alter system kill session 'sid,serial#';
Solution 2:
SQL> alter table emp read only;
Session altered.
SQL> alter table emp add (mobno varchar2(20));
Table altered.
Solution 3 (for 10g):
DECLARE
MYSQL VARCHAR2(250) := 'alter table emp add (mobno varchar2(15))';
IN_USE_EXCEPTION EXCEPTION;
PRAGMA EXCEPTION_INIT(IN_USE_EXCEPTION, -54);
BEGIN
WHILE TRUE LOOP
BEGIN
EXECUTE IMMEDIATE MYSQL;
EXIT;
EXCEPTION
WHEN IN_USE_EXCEPTION THEN
NULL;
END;
DBMS_LOCK.SLEEP(1);
END LOOP;
END;
Solution 4:
SQL> alter session set ddl_lock_timeout = 700;
SQL> alter table emp add (mobile varchar2(15));





