DB/Query

[펌] 오라클 테이블 DDL Script 얻는 방법

시처럼 음악처럼 2007. 7. 25. 10:01

오라클 테이블 DDL Script 얻는 방법

이전에 오라클 써드파티 툴없이 Table DDL 문을 얻기 위해서

exp 유틸리티를 이용해서 rows=n 으로 데이터를 제외하고 table 생성 스크립트를 얻었습니다.

하지만 버전업이 되면서 9i 버전 이상부터는 dbms_metadata 라는 패키지가 생겼습니다.

이걸로 테이블 생성 DDL 문을 얻는 방법을 설명하겠습니다.


set heading off;
 set echo off;
 Set pages 999;
 set long 90000;
 
spool ddl_list.sql
 select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
 select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
 spool off;


실행결과문

CREATE TABLE "SCOTT"."DEPT"
   (   "DEPTNO" NUMBER(2,0),
       "DNAME" VARCHAR2(14),
       "LOC" VARCHAR2(13),
        CONSTRAINT "PK_DEPT" PRIMARY KEY ("DEPTNO")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
  STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50
  FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"  ENABLE
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING
  STORAGE(INITIAL 12288 NEXT 12288 MINEXTENTS 1 MAXEXTENTS 249 PCTINCREASE 50
  FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"
 
 
  CREATE UNIQUE INDEX "SCOTT"."DEPT_IDX" ON "SCOTT"."DEPT" ("DNAME")
 ; FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "SYSTEM"

 

이와 같은 해당 테이블에 대한 DDL 및 인덱스에 생성 DDL 문까지 얻을 수 있습니다.

 

그리고 10g 버전부터는 datapump 라는 툴을 이용해서 exp 보다는 편리하게 SQL 문을 export 받을수 있습니다.

(스키마 전체에 대한 SQL 문을 백업받을 경우 사용하면 좋습니다.)