Mit dem neuen Package DBMS_METADATA lässt sich einfach ein DDL Script von einer Tabelle oder einen anderen Objekt in der Datenbank
erzeugen.
Beispiel:
set pagesize 0
set linesize 200
set long 1000000
set longchunksize 1000000
spool c:\sql\emp_ddl.sql
-- get_ddl für SQL DDL und get_xml für SQL XML
select dbms_metadata.get_ddl('TABLE',a.table_name,'SCOTT')
from dba_tables a
where table_name = 'EMP'
and owner = 'SCOTT';
select dbms_metadata.get_xml('TABLE',a.table_name,'SCOTT')
from dba_tables a
where table_name = 'EMP'
and owner = 'SCOTT';
spool off
Ergebnis:
CREATE TABLE "SCOTT"."EMP"
( "EMPNO" NUMBER(4,0),
"ENAME" VARCHAR2(10),
"JOB" VARCHAR2(9),
"MGR" NUMBER(4,0),
"HIREDATE" DATE,
"SAL" NUMBER(7,2),
"COMM" NUMBER(7,2),
"DEPTNO" NUMBER(2,0),
CONSTRAINT "PK_EMP" PRIMARY KEY ("EMPNO")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM" ENABLE,
CONSTRAINT "FK_DEPTNO" FOREIGN KEY ("DEPTNO")
REFERENCES "SCOTT"."DEPT" ("DEPTNO") ENABLE
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "SYSTEM"
|