我们都知道在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"   
  
   SQL> select dbms_metadata.get_ddl("INDEX","INDXX_PQZJYW","SHQSYS") from dual;
  
   CREATE INDEX "SHQSYS"."INDXX_PQZJYW" ON "SHQSYS"."SZT_PQSO2" ("ZJYW")
    PCTFREE 10 INITRANS 2 MAXTRANS 255
    STORAGE(INITIAL 1048576 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 
    PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) 
   TABLESPACE "DATA1"
   
   SQL> 
   SQL> spool off;
  2、获得整个SCHEMA DDL语句的方法:
   set pagesize 0
   set long 90000
   set feedback off
   set echo off
   spool get_schema.sql
   connect shqsys/shqsys@hawk1;
   SELECT DBMS_METADATA.GET_DDL("TABLE",u.table_name)
   FROM USER_TABLES u; 
   SELECT DBMS_METADATA.GET_DDL("INDEX",u.index_name)
   FROM USER_INDEXES u; 
   spool off;
  需要注意的是,当我们的表中有外健(参照约束)时,我们需要判别参照表之间的顺序,确保重建时按照合理的顺序进行。你可以通过查询dba_constraints and dba_cons_columns来确定各表之间的顺序,不再详述。

转载于:https://www.cnblogs.com/lsp_jlu/archive/2005/06/12/173032.html

轻松取得建表和索引的DDL语句相关推荐

  1. mysql建表2个索引是啥意思_Mysql建表与索引使用规范详解

    本篇文章是对Mysql建表和索引使用规范进行了详细的分析介绍,需要的朋友参考下 一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默 ...

  2. Oracle 学习之建表、索引、同义词以及SQL优化

    Oracle 学习之建表.索引.同义词以及SQL优化: 一.Oracle 建表: 1.建表语句: --创建表 create table test ( id varchar2(200) primary ...

  3. 超全的数据库建表/SQL/索引规范,适合贴在工位上!

    背景 ​ 因为工作岗位的原因,负责制定了关于后端组数据库的规约规范,作为所有产品线的规范,历经几版的修改,最终形成下边的文本,规范在整个后端执行也有大半年的时间,对于整个团队在开发阶段就减少不恰当的建 ...

  4. sql datetime 排序_超全的数据库建表/SQL/索引规范,建议贴在工位上!

    作者:浮雷来源:juejin.im/post/6871969929365553165 「背景」 因为工作岗位的原因,负责制定了关于后端组数据库的规约规范,作为所有产品线的规范,历经几版的修改,最终形成 ...

  5. mysql 建表时建立索引_mysql 分享建表和索引的几点规范

    一. MySQL建表,字段需设置为非空,需设置字段默认值. 二. MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL. 三. MySQL建表,如果字段等价于外键,应在该字段加索引. ...

  6. datetime 索引_超全的数据库建表/SQL/索引规范,适合贴在工位上!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:又一程序员进了ICU:压垮一个家庭,一张结算单就够 个人原创100W+访问量博客:点击前往,查看更多 来源:ht ...

  7. MySQL建表,DML,DDL,约束,外键策略

    创建数据库表 CREATE TABLE student( sno int (6), sname VARCHAR(10), sex CHAR(1), age INT(2), enterdate date ...

  8. mysql建表索引_Mysql建表+创建索引

    创建表时可以直接创建索引,这种方式最简单.方便.其基本形式如下: CREATE TABLE 表名( 属性名 数据类型[完整性约束条件], 属性名 数据类型[完整性约束条件], ...... 属性名 数 ...

  9. mysql附录建表_用CREATE TABLE 语句创建数据表

    用CREATE TABLE 语句创建数据表 用 CREATE TABLE 语句创建表.此语句的完整语法是相当复杂的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单.如我们在第 1 章中使用的 ...

最新文章

  1. Android application捕获崩溃异常
  2. 多线程编程(4) - 多线程同步之 Mutex (互斥对象)
  3. 如何建立自己的知识体系?(摘)
  4. mysql 按时间分库分表_sharding-jdbc 按时间分库分表
  5. 【主席树】bzoj1112: [POI2008]砖块Klo
  6. 基于深度卷积神经网络的苹果叶片植物病理学疾病检测
  7. 扇贝有道180903每日一句
  8. 关于富文本编辑器froala editor和百度Ueditor使用问题
  9. C语言实战--DLL注入器
  10. Matlab中table2array函数使用
  11. 玩转Linux操作系统常见操作,包括VMware安装,DHCP,DNS,Sendmail,NCSA验证,Apache,反向代理,webalizer,创建oracle用户,赋权,挂载
  12. docker搭建FastDFS及遇到的问题解决
  13. 钢筋穿入女子太阳穴 消防及时破拆将其营救
  14. AI聊天机器人 — 机遇和挑战并存
  15. 实训日记(二)——分镜
  16. 浏览器如何在f12中查看接口地址_经过浏览器中的F12中来查看接口的入参、出参和网页响应时间(新手教程)...
  17. JPEG算法解密 JPEG原理详解 (转载 by jinchao)
  18. 软件设计模式学习(十四)外观模式
  19. 2021年这些高频面试知识点最后再发一次,跳槽薪资翻倍
  20. UGUI内核大探究(九)Image与RawImage

热门文章

  1. stm32超声波扫频_基于STM32的脉冲式及扫频式超声波除垢信号源设计
  2. shell编程最新总结大全
  3. android震动提示音,android的消息提示(震动与提示音)
  4. 低功耗wifi soc_36氪首发研发低功耗蓝牙芯片,联睿微完成数千万元A+轮融资
  5. sql程序调用批处理_批处理学习之常用命令
  6. 打开excel文件并写入_双击Excel表格文件时只打开程序不能直接打开文件
  7. 设计和实时视图不一样_三室两厅家装设计,如何打造出不一样的感觉?
  8. 枚举型是什么类型_金属缠绕垫片如何选用?A、B、C、D型都是什么类型?
  9. 我的编程能力从什么时候开始突飞猛进
  10. html语言post下发bin文件,在IIS7中启用html文件的POST请求