[ORACLE] TABLE, INDEX CREATE DDL 추출각종 툴을 쓰면 보통 TABLE, INDEX DDL SCRIPT 추출 기능이 있는데, 오라클 쿼리로도 가져올 수 있다. Show SUNGHS.USER_INFO 테이블, 인덱스 추출특정 테이블명과 인덱스명을 알 때 이다.
추출에 조건을 걸 수 있다.
특정 스키마의 TABLE, INDEX 전부 추출 DB 오라클 스키마만 저장 하기 export 2009. 8. 4. 10:41
작성자 PG짱(ebc772osh) 작성일 2008-09-25 14:04:13 조회수 866 특정 계정의 테이블을 export 시 테이블 안 자료들은 제외하고 테이블만 export 하는 옵션이나 방법이 있나요? 아님 어쩔 수 없이 delete table 쿼리로 하나하나 비워준 다음에 export 해야하는건지? 이 글에 대한 댓글이 총 2건 있습니다. Toad 에 보면 테이블,뷰, 등의 오브젝트 생성 스크립트 전체를 한번에 뜨는 기능이 있습니다. 그게 더 나을듯 싶은데요. 인랑님이 2008-09-25 14:34:01에 작성한 댓글입니다. export할때 rows=n 옵션을 주시면 데이터없는 테이블 스키마만 export 됩니다. ex) exp system/*** file=rowsn.dmp rows=n log=rowsn.log 사족으로 이렇게 받은 덤프파일로 테이블 및 인덱스 생성 스크립트를 뽑을 수 있습니다. imp system/**** file=rowsn.dmp indexfile=rowsn.sql 수고하세요
Oracle DB에서 Table, Index, Function, Procedure, View, Sequence 등의 Create SQL 문장을 확인하고자 할 때, 보통은 Orange, Toad, SQL Developer 같은 툴들을 이용하면 메뉴에 있는 기능으로 쉽게 Create DDL문을 추출할 수 있습니다. 하지만, 이런 툴이 없을 때 간단하게 SQL*Plus 상에서 이용할 수 있는 커맨드가 있습니다. dbms_metadata 패키지의 get_ddl( ) 함수를 이용하면 쉽게 오브젝트들의 생성 스크립트를 추출할 수 있습니다. 이 기능은 Oracle 9i 이상 지원됩니다.
위 샘플은 SALES 테이블의 스크립트를 추출하는 예입니다. set pagesize 0 은 화면에서 출력하는 단위(라인수)가 있는데 이걸 없애는 것입니다. set long 40000 은 화면에서 출력되는 글자수를 40000 으로 지정하는 것입니다. 만약 소스가 더 길다면 더 크게 잡아주면 됩니다. 첫번째 인자로 조회할 Object Type 을 지정합니다. 'TABLE' 대신 'INDEX', 'VIEW', 'PROCEDURE', 'FUNCTION' 등을 지정할 수 있습니다. 두번째 인자는 조회할 Object 명을 지정합니다. 위에서는 'SALES' 테이블을 지정했습니다. 만약 SALES 테이블이 여러 DB유저에 있다면, 유저를 아래처럼 지정할 수 있습니다. 아래는 'SCOTT' 유저에 있는 'SALES' 테이블을 찾습니다. 유저를 명시하지 않으면 Default로 현재 유저(스키마) 내에서 오브젝트를 찾습니다.
아래는 실행 샘플들~~ Index 추출~ Procedure 추출~ View 추출~ Sequence 추출~ Oracle DB 내의 모든 오브젝트들에 대한 Create SQL 문을 추출할 수 있네요. |