본 장에서는 DBMS_METADATA 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명한다.
DDL 생성 script를 만들어주는 함수이다.
프로토타입
DBMS_METADATA.GET_DDL ( object_type IN VARCHAR2, name IN VARCHAR2, schema IN VARCHAR2 DEFAULT NULL ) RETURN CLOB;
파라미터
파라미터 | 설명 |
---|---|
object_type | 메타데이터 추출 오프젝트 타입이다. 현재 다음에 대해서 기능을 제공한다.
|
name | 추출할 오프젝트 이름을 지정한다. |
schema | 오프젝트의 owner를 지정한다. |
예제
SQL> create table emp( empno number(4,0), ename varchar2(10), job varchar2(9), mgr number(4,0), hiredate date ); Table 'EMP' created. select to_char(dbms_metadata.get_ddl('TABLE', 'EMP', 'MY_USER')) from dual SQL> / TO_CHAR(DBMS_METADATA.GET_DDL('TABLE','EMP','MY_USER')) -------------------------------------------------------------------------------- CREATE TABLE MY_USER.EMP (EMPNO NUMBER(4), ENAME VARCHAR(10), JOB VARCHAR(9), MGR NUMBER(4), HIREDATE DATE) TABLESPACE USR PCTFREE 10 INITRANS 2 STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 4294967295 BUFFER_POOL DEFAULT) LOGGING NOCOMPRESS NOPARALLEL DISABLE ROW MOVEMENT; 1 row selected. SQL> create table dept( deptno number(2,0), dname varchar2(14), loc varchar2(13), constraint pk_dept primary key (deptno) ); 2 3 4 5 6 Table 'DEPT' created. SQL> select to_char(dbms_metadata.get_ddl('INDEX', 'PK_DEPT', 'MY_USER')) from dual; TO_CHAR(DBMS_METADATA.GET_DDL('INDEX','PK_DEPT','MY_USER')) -------------------------------------------------------------------------------- CREATE UNIQUE INDEX MY_USER.PK_DEPT ON MY_USER.DEPT (DEPTNO ASC) LOGGING TABLESPACE USR PCTFREE 10 INITRANS 2 STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 4294967295 BUFFER_POOL DEFAULT);