IT/SQL
[Oracle] 모든 사용자 오브젝트(테이블, 인덱스, 시퀀스) 삭제
체계성
2021. 11. 20. 09:37
-- 테이블 및 인덱스 삭제 쿼리문 출력
SELECT '(TEST) DROP '
||object_type
||' '
|| object_name
|| DECODE(OBJECT_TYPE,'TABLE',' CASCADE CONSTRAINTS;',';')
FROM user_objects;
-- 테이블 삭제 쿼리문 출력
SELECT 'DROP '
||TABLE_NAME
||' CASCADE CONSTRAINTS;'
FROM USER_TABLES -- pg_tables In postgreSQL
WHERE TABLE_NAME LIKE 'TN_RLDLPC_%_BAK';
-- 테이블의 모든 인덱스 삭제 쿼리문 출력
SELECT 'DROP INDEX ' || INDEX_NAME || ';' FROM USER_INDEXES WHERE TABLE_NAME = 'TN_RLDLPC_RENT_APT_BAK';
--DROP INDEX TN_RLDLPC_RENT_APT_III_1;
--DROP INDEX TN_RLDLPC_RENT_APT_III_2;
--DROP INDEX TN_RLDLPC_RENT_APT_III_3;
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
Plain textCopyCODE - 다음과 같이 drop SQL 문이 생성됨
-
drop INDEX IDX_USERS_0; drop INDEX IDX_USERS_1; drop TABLE USERS CASCADE CONSTRAINTS;
Plain textCopyCODE - 질의 결과에서 마우스 우클릭해서 익스포트 선택
- 형식에서 text 를 선택하고 둘러싸기는 없음 선택
- 저장을 누른후에 생성된 SQL 을 SQL Developer에서 실행