오라클 테이블 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 문을 백업받을 경우 사용하면 좋습니다.)