当前位置:  数据库>oracle

轻松取得Oracle 9i建表和索引DDL语句

    来源: 互联网  发布时间:2017-03-16

    本文导语:     我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这...

   我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的事。我们通常的做法都是通过export with rows=no来得到,但它的输出因为格式的问题并不能直接拿来用。而另一种方法就是写复杂的脚本来查询数据字典,但这对于一稍微复杂的对象,如IOT和嵌套表等,还是无法查到。
  从数据字典中获得DDL语句是经常要用的,特别是在系统升级/重建的时候。在Oracle 9i中,我们可以直接通过执行dbms_metadata从数据字典中查处DDL语句。使用这个功能强大的工具,我们可以获得单个对象或整个SCHEMA的DDL语句。最好不过的是因为它使用起来很简单。
1、获得单个表和索引DDL语句的方法:

set heading off;

set echo off;

Set pages 999;

set long 90000;

spool get_single.sql

select dbms_metadata.get_ddl(TABLE,SZT_PQSO2,SHQSYS) from dual;

select dbms_metadata.get_ddl(INDEX,INDXX_PQZJYW,SHQSYS) from dual;

spool off;

  下面是输出。我们只要把建表/索引语句取出来在后面加个分号就可以直接运行了。

SQL> select dbms_metadata.get_ddl(TABLE,SZT_PQSO2,SHQSYS) from dual;

 

CREATE TABLE SHQSYS.SZT_PQSO2

( PQBH VARCHAR2(32) NOT NULL ENABLE,

ZJYW NUMBER(10,0),

CGSO NUMBER(10,0) NOT NULL ENABLE,

SOLS VARCHAR2(17),

SORQ VARCHAR2(8),

SOWR VARCHAR2(8),

SOCL VARCHAR2(6),

YWHM VARCHAR2(10),

YWLX VARCHAR2(6)

) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING

STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645

PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)

TABLESPACE DATA1




















































    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在oracle裡怎麼樣取得數據庫裡的每一個表名?
  • .net/c#/asp.net iis7站长之家
  • 如何将从JSP页面中取得的系统当前时间写入oracle数据库表中?
  • 脚本取得动态输出
  • 请问哪个函数可以取得微妙(或毫秒)的时间值?
  • 如何取得程序运行时的当前目录?
  • 请问?如何取得系统时间?
  • 如何取得cpu使用率!
  • 在Linux中,IP怎样取得?
  • 如何取得系统运行性能?
  • 请问在solaris下可以取得一个线程的ID号吗?
  • stat取得文件信息的问题
  • 请问linux系统下,用什么函数可以取得hostname和username?
  • 用shell如何取得"5555:Thu Oct 30 09:37:17"中第一个冒号前面的值?
  • 怎样取得sk_buff中的data
  • 请教在Servlet中如何取得JSP中提交的radio对象和checkbox的值?
  • 如何取得进程执行时间?
  • 你能告诉我如何取得到Request里的名称和值,以及数据库里名称和数据类型?
  • 在Java中如何取得一个字符的ASCII码值?
  • 请问用什么方法取得表中的记录数?是getRowCount么?
  • 请教各位高手一个简单的问题:在JAVA 中如何才能取得一些系统信息?
  • 在JSP中怎样取得两个日期的相隔天数??
  • UNIX/LINUX下如何取得精确到“毫秒级”的系统时间?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3