2012년 11월 23일 금요일

오라클에서 스키마에 해당하는 모든 객체를 삭제하고 싶을 때


sqlplus를 사용한다면, sqlplus에 접속한후

> set head off
> set pagesize 0
> set verify off
> set feedback off
> spool drop_objects.sql
> select 'drop ' || object_type || ' ' || object_name || ' ' ||
decode(object_type, 'TABLE', 'CASCADE CONSTRAINTS;', ';')
from user_objects;
> spool off
> @drop_objects.sql

select 쿼리 실행 결과로 아래와 같이 나오게 된다.

drop TABLE <table_name> CASCADE CONSTRAINTS;
drop INDEX <index_name>;
drop SEQUENCE <sequence_name>;
....

테이블의 경우 foreign key로 참조되는 테이블을 함께 삭제한다.
쿼리 결과를 drop_objects.sql로 저장을 하고,
drop_objects.sql을 실행하게 되면 모든 스키마 객체가 삭제된다.

댓글 없음:

댓글 쓰기