프린트 하기

OS환경 : Oracle Linux 6.8 (64bit)


DB 환경 : Oracle Database 11.2.0.4


에러 : ORA-01940: cannot drop a user that is currently connected

유저 삭제 drop user 명령 시 ORA-01940 발생

1
2
3
4
5
SQL> drop user test cascade;
drop user test cascade
*
ERROR at line 1:
ORA-01940: cannot drop a user that is currently connected



해결 방법 : 해당 유저 확인 후 작업 종료 및 kill 후 제거

유저 확인

1
2
3
4
5
6
7
8
9
SQL>
select sid, serial#, username, status
from v$session
where username='TEST'
/
 
       SID    SERIAL# USERNAME                 STATUS
---------- ---------- ------------------------------ --------
    37      713 TEST                 INACTIVE



kill 명령 실행

1
2
3
SQL> alter system kill session '37, 713';
 
System altered.



유저 재확인

1
2
3
4
5
6
7
8
9
SQL>
select sid, serial#, username, status
from v$session
where username='TEST'
/
 
       SID    SERIAL# USERNAME                 STATUS
---------- ---------- ------------------------------ --------
    37      713 TEST                 KILLED

KILLED 로 표시됨



유저 삭제 명령 재실행

1
2
3
SQL> drop user test cascade;
 
User dropped.



원인 : 삭제하려는 유저가 접속중(작업중)이어서 삭제가 되지않음

나의 경우 test라는 유저로 테이블을 만든 뒤 데이터를 insert 하고 commit을 입력하지 않은 상태였음

1
2
3
4
5
6
7
SQL> create table imsi (nu number);
 
Table created.
 
SQL> insert into imsi values (1);
 
1 row created.



세션 kill 이후 명령시 아래와 같이 나옴

1
2
3
4
5
SQL> commit;
commit
*
ERROR at line 1:
ORA-00028: your session has been killed




참조 :