Oracle DB에서 Table, Index, Function, Procedure, View, Sequence 등의 Create SQL 문장을 확인하고자 할 때,
보통은 Orange, Toad, SQL Developer 같은 툴들을 이용하면 메뉴에 있는 기능으로 쉽게 Create DDL문을 추출할 수 있습니다.
하지만, 이런 툴이 없을 때 간단하게 SQL*Plus 상에서 이용할 수 있는 커맨드가 있습니다.
dbms_metadata 패키지의 get_ddl( ) 함수를 이용하면 쉽게 오브젝트들의 생성 스크립트를 추출할 수 있습니다.
이 기능은 Oracle 9i 이상 지원됩니다.
SQL> set pagesize 0
SQL> set long 40000
SQL> select dbms_metadata.get_ddl('TABLE','SALES') from dual;
위 샘플은 SALES 테이블의 스크립트를 추출하는 예입니다.
set pagesize 0 은 화면에서 출력하는 단위(라인수)가 있는데 이걸 없애는 것입니다.
set long 40000 은 화면에서 출력되는 글자수를 40000 으로 지정하는 것입니다. 만약 소스가 더 길다면 더 크게 잡아주면 됩니다.
첫번째 인자로 조회할 Object Type 을 지정합니다.
'TABLE' 대신 'INDEX', 'VIEW', 'PROCEDURE', 'FUNCTION' 등을 지정할 수 있습니다.
두번째 인자는 조회할 Object 명을 지정합니다.
위에서는 'SALES' 테이블을 지정했습니다.
만약 SALES 테이블이 여러 DB유저에 있다면, 유저를 아래처럼 지정할 수 있습니다.
아래는 'SCOTT' 유저에 있는 'SALES' 테이블을 찾습니다. 유저를 명시하지 않으면 Default로 현재 유저(스키마) 내에서 오브젝트를 찾습니다.
SQL> select dbms_metadata.get_ddl('TABLE','SALES', 'SCOTT') from dual;
아래는 실행 샘플들~~
Index 추출~
Procedure 추출~
View 추출~
Sequence 추출~
Oracle DB 내의 모든 오브젝트들에 대한 Create SQL 문을 추출할 수 있네요.
'IT관련' 카테고리의 다른 글
오라클 v$sql 에서 방금 실행한 SQL 확인하는 방법 (0) | 2019.09.09 |
---|---|
Oracle DB Startup nomount 안되는 경우, Hang - 버추얼박스(VirtualBox) (0) | 2019.09.08 |
오라클 파티션 인덱스 (Partition Index) 관련 팁, FAQ 정리 (0) | 2019.09.05 |
워드(MS-Word)에서 디폴트 패러그래프(Paragraph) 세팅 - 영구적으로, 모든 워드 파일에 적용하는 방법 (0) | 2019.09.05 |
오라클 해시파티션(Hash Partition)에서 Split 가능한가? (0) | 2019.09.05 |