2013-08-03 2 views

답변

19

user_tables에서 Table_name을 선택하고이 루프를 반복하고 "즉시 실행"명령을 사용하여 삭제할 수있는 스크립트를 작성할 수 있습니다.

하지만이 제안 - SQL 도구에서이

select 'drop table ' || table_name || ';' from user_tables where table_name like 'TBL_%' 

그런 다음이 쿼리의 출력을 복사하여 SQL 편집기에 붙여 및 실행 않습니다. sql +가 편집기 인 경우 모두 붙여 넣으면 실행이 시작됨을 기억하십시오. 메모장을 사용하여 먼저 검토하고 편집 할 수 있습니다.

하지만 하나의 명령으로 하나 이상의 테이블을 삭제할 수는 없습니다. 드롭 테이블 http://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9003.htm

7
BEGIN 

    --Bye Tables! 
    FOR i IN (SELECT ut.table_name 
       FROM USER_TABLES ut) LOOP 
    EXECUTE IMMEDIATE 'drop table '|| i.table_name ||' CASCADE CONSTRAINTS '; 
    END LOOP; 

END; 
+0

과 관련된 다른 옵션이 링크를 확인 나는 3 년 전에 내 원래의 대답>에이 기술을 설명했다. 그리고 나는 때때로 데이터로 작업 할 때 위험 할 수 있다고 지적했다. http://stackoverflow.com/a/18030453/1704458 –

+0

사용자가 *로 "TBL_"로 시작하는 테이블 만 요청했기 때문에 이것은 downvote를 얻는다. 모두 삭제! – theMayer

관련 문제