GET_DDL得到对象的定义语句

 

 

GET_DDL得到对象的定义语句

使用DBMS_METADATA.GET_DDL获取DDL语句 

很简单。 

一个例子说明,如何使用 

SQL> set serverout on; 
SQL> exec dbms_output.put_line(dbms_metadata.get_ddl('TABLE', 'TEST_1', 'TEST1') 
); 
引用:

CREATE TABLE "TEST1"."TEST_1" 
( "ID" NUMBER(*,0), 
"NAME" VARCHAR2(100), 

CONSTRAINT "PK_TEST_1" PRIMARY KEY ("ID") 
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 "TESTTS" 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 "TESTTS" 

PL/SQL 过程已成功完成。


这里很清楚了吧,这里需要注意的两点 
1. 是函数,参数为 
dbms_metadata.get_ddl(OBEJCT_TYPE, OBJECT_NAME, OWNER_NAME); 

2. 既然是函数,可以用select dbms_metadata.get_ddl(OBEJCT_TYPE, OBJECT_NAME, OWNER_NAME) from dual; 
来直接看。但是你执行一下,就看到问题了,显示不全。怎么回事呀。 
这里是long在做怪。默认long是100;这样缓冲区不够,去trim掉了 
SQL>set long 2000; 再试试 
引用:

DBMS_METADATA.GET_DDL('TABLE','TEST_1','TEST1') 
-------------------------------------------------------------------------------- 


CREATE TABLE "TEST1"."TEST_1" 
( "ID" NUMBER(*,0), 
"NAME" VARCHAR2(100), 
CONSTRAINT "PK_TEST_1" PRIMARY KEY ("ID") 
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 "TESTTS" ENABLE 
) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING 
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 

DBMS_METADATA.GET_DDL('TABLE','TEST_1','TEST1') 
-------------------------------------------------------------------------------- 

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) 
TABLESPACE "TESTTS"

 




 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值