oracle 모든 사용자 오브젝트(테이블, 인덱스, 시퀀스) 삭제

개발이나 테스트등의 용도로 특정 사용자의 table, index, sequence 등의 모든 object 를 삭제할 경우가 있다.

drop user 후에 재생성해주면 되지만 DBA 권한이 필요하므로 오라클의 특정 사용자의 모든 오브젝트를 삭제하는 방법을 정리해 본다.

GUI툴은 Oracle SQL Developer 사용했다.

 

  1. sqldeveloper 로 해당 사용자로 로그인
  2. 다음 SQL 실행

    SELECT 'drop '
      ||object_type
      ||' '
      || object_name
      || DECODE(OBJECT_TYPE,'TABLE',' CASCADE CONSTRAINTS;',';')
    FROM user_objects
  3. 다음과 같이 drop SQL 문이 생성됨

    drop INDEX IDX_USERS_0;
    drop INDEX IDX_USERS_1;
    drop TABLE USERS CASCADE CONSTRAINTS;
  4. 질의 결과에서 마우스 우클릭해서 익스포트 선택
  5. 형식에서 text 를 선택하고 둘러싸기는 없음 선택
     
  6. 저장을 누른후에 생성된 SQL 을 SQL Developer에서 실행

 

 

 

Ref