Oracle轻松取得建表和索引的DDL语句
前端之家收集整理的这篇文章主要介绍了
Oracle轻松取得建表和索引的DDL语句,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们可以通过exportwithrows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到。
从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候。在Oracle9i中,我们可以直接通过执行dbms_Metadata从数据字典中查处DDL语句。使用这个功能强大的工具,我们可以获得单个对象或整个SCHEMA的DDL语句。最好不过的是因为它使用起来很简单。 1、获得单个表和索引DDL语句的方法: <div class="codetitle"><a style="CURSOR: pointer" data="99694" class="copybut" id="copybut99694" onclick="doCopy('code99694')"> 代码如下:
<div class="codebody" id="code99694">
setheadingoff;
setechooff;
Setpages999;
setlong90000;
spoolget_single.
sql selectdbms_
Metadata.get_ddl('TABLE','SZT
PQSO2','SHQSYS')fromdual;
selectdbmsMetadata.get_ddl('INDEX','INDXX_PQZJYW','SHQSYS')fromdual;
spooloff;
下面是
输出。我们只要把建表/索引语句取出来在后面加个分号就可以直接运行了。 <div class="codetitle">
<a style="CURSOR: pointer" data="91408" class="copybut" id="copybut91408" onclick="doCopy('code91408')"> 代码如下:
<div class="codebody" id="code91408">
sql>selectdbms_
Metadata.get_ddl('TABLE','SHQSYS')fromdual;
CREATETABLE"SHQSYS"."SZT_PQSO2"
("PQBH"VARCHAR2(32)NOTNULLENABLE,
"ZJYW"NUMBER(10,0),
"CGSO"NUMBER(10,0)NOTNULLENABLE,
"SOLS"VARCHAR2(17),
"SORQ"VARCHAR2(8),
"SOWR"VARCHAR2(8),
"SOCL"VARCHAR2(6),
"YWHM"VARCHAR2(10),
"YWLX"VARCHAR2(6)
)PCTFREE10PCTUSED40INITRANS1MAXTRANS255NOCOMPRESSLOGGING
STORAGE(INITIAL1048576NEXT1048576MINEXTENTS1MAXEXTENTS2147483645
PCTINCREASE0FREELISTS1FREELISTGROUPS1BUFFER_POOLDEFAULT)
TABLESPACE"DATA1"
sql>selectdbms_
Metadata.get_ddl
('INDEX','SHQSYS')fromdual;
CREATEINDEX"SHQSYS"."INDXX_PQZJYW"ON"SHQSYS"."SZT_PQSO2"("ZJYW")
PCTFREE10INITRANS2MAXTRANS255
STORAGE(INITIAL1048576NEXT1048576MINEXTENTS1MAXEXTENTS2147483645
PCTINCREASE0FREELISTS1FREELISTGROUPS1BUFFER_POOLDEFAULT)
TABLESPACE"DATA1"
sql>
sql>spooloff;