我正在创建一个包来生成我的模式中的对象的DDL(您解析对象名称,并返回一个clobDDL),所以我可以生成文件,并将它们直接放入SVN.
我正在使用dbms_metadata.get_ddl它,它适用于除表/物化视图之外的所有对象.
如果我创建一个表:
create table stackoverflow
( col_1 varchar2(64)
, col_2 number
, col_3 date);
create index idx_test on stackoverflow(col_1);
alter table stackoverflow add constraint ui_test unique (col_2) using index;
Run Code Online (Sandbox Code Playgroud)
并生成DDL:
begin
dbms_output.put_line(dbms_metadata.get_ddl( object_type => 'TABLE'
, name => 'STACKOVERFLOW')
);
end;
Run Code Online (Sandbox Code Playgroud)
它给了我们:
CREATE TABLE "TEST_SCHEMA"."STACKOVERFLOW"
( "COL_1" VARCHAR2(64),
"COL_2" NUMBER,
"COL_3" DATE,
CONSTRAINT "UI_TEST" UNIQUE ("COL_2")
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 131072 NEXT 131072 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE …Run Code Online (Sandbox Code Playgroud)