oracle 모든 사용자 오브젝트(테이블, 인덱스, 시퀀스) 삭제
개발이나 테스트등의 용도로 특정 사용자의 table, index, sequence 등의 모든 object 를 삭제할 경우가 있다.
drop user 후에 재생성해주면 되지만 DBA 권한이 필요하므로 오라클의 특정 사용자의 모든 오브젝트를 삭제하는 방법을 정리해 본다.
GUI툴은 Oracle SQL Developer 사용했다.
- sqldeveloper 로 해당 사용자로 로그인
다음 SQL 실행
SELECT 'drop ' ||object_type ||' ' || object_name || DECODE(OBJECT_TYPE,'TABLE',' CASCADE CONSTRAINTS;',';') FROM user_objects
다음과 같이 drop SQL 문이 생성됨
drop INDEX IDX_USERS_0; drop INDEX IDX_USERS_1; drop TABLE USERS CASCADE CONSTRAINTS;
- 질의 결과에서 마우스 우클릭해서 익스포트 선택
- 형식에서 text 를 선택하고 둘러싸기는 없음 선택
- 저장을 누른후에 생성된 SQL 을 SQL Developer에서 실행
Ref