`
yunfubaoyang
  • 浏览: 3938 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

获取数据库或SHEME的DDL语句

阅读更多

在9i以后,可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。以下语句均在sqlplus中执行

1. 获取单个的建表、视图和建索引的语法

 1 set pagesize 0
 2 set long 90000
 3 set feedback off
 4 set echo off
 5 spool DEPT.sql
 6   --以下参数可以根据实际情况打开或关闭
 7     --输出信息采用缩排或换行格式化
 8     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'pretty', true);
 9     --确保每个语句都带分号
10     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'sqlterminator', true);
11     --关闭表索引、外键等关联(后面单独生成)
12     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'constraints', false);
13     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'ref_constraints', false);
14     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'constraints_as_alter', false);
15     --关闭存储、表空间属性
16     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'storage', false);
17     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'tablespace', false);
18     --关闭创建表的PCTFREE、NOCOMPRESS等属性
19     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'segment_attributes', false);
20    
21     --表
22     SELECT DBMS_METADATA.GET_DDL('TABLE','TAB_NAME','HR') FROM DUAL; --表名(TAB_NAME)   SECHEMA(HR)
23     --视图
24     SELECT DBMS_METADATA.GET_DDL('VIEW','VIEW_NAME','HR') FROM DUAL;
25     --索引
26     SELECT DBMS_METADATA.GET_DDL('INDEX','IDX_NAME','HR') FROM DUAL;
27 spool off;


2. 获取一个SCHEMA下的所有建表、视图和建索引的语法,以HR为例:

 1 2. 获取一个SCHEMA下的所有建表、视图和建索引的语法,以HR为例:
 2 set pagesize 0
 3 set long 90000
 4 set feedback off
 5 set echo off
 6 spool schema.sql
 7 connect HR/HR12345; --当前所连接用户
 8
 9     --输出信息采用缩排或换行格式化
10     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'pretty', true);
11     --确保每个语句都带分号
12     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'sqlterminator', true);
13     --关闭表索引、外键等关联(后面单独生成)
14     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'constraints', false);
15     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'ref_constraints', false);
16     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'constraints_as_alter', false);
17     --关闭存储、表空间属性
18     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'storage', false);
19     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'tablespace', false);
20     --关闭创建表的PCTFREE、NOCOMPRESS等属性
21     exec dbms_metadata.set_transform_param(dbms_metadata.session_transform, 'segment_attributes', false);
22    
23     --表
24     SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;--获取当前用户的DDL语句
25     --视图
26     SELECT DBMS_METADATA.GET_DDL('VIEW',u.VIEW_name) FROM USER_VIEWS u;
27     --索引
28     SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;
29 spool off;


3. 获取HR下的全部存储过程的语法

 1 set pagesize 0
 2 set long 90000
 3 set feedback off
 4 set echo off
 5 spool procedures.sql
 6 connect HR/HR12345;
 7  
 8  
 9     select   DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name)
10     from     user_objects u
11     where     object_type = 'PROCEDURE';
12 spool off;


4. 获取HR下的全部函数的语法

 1 set pagesize 0
 2 set long 90000
 3 set feedback off
 4 set echo off
 5 spool function.sql 
 6 connect HR/HR12345;
 7     select   DBMS_METADATA.GET_DDL('FUNCTION',u.object_name)
 8     from     user_objects u
 9     where    object_type = 'FUNCTION';
10 spool off;

复制代码

5.得到所有表空间的ddl语句
复制代码

 1 set pagesize 0
 2 set long 90000
 3 set feedback off
 4 set echo off
 5 spool tablespace.sql
 6
 7     SELECT DBMS_METADATA.GET_DDL('TABLESPACE', TS.tablespace_name)
 8     FROM DBA_TABLESPACES TS;
 9
10 spool off;

复制代码

6.得到所有创建用户的ddl
复制代码

 1 set pagesize 0
 2 set long 90000
 3 set feedback off
 4 set echo off
 5 spool user.sql
 6
 7     SELECT DBMS_METADATA.GET_DDL('USER',U.username)
 8     FROM DBA_USERS U;
 9
10 spool off;

复制代码

   通过以上sql的组合,可以获取到一个数据库或SCHEMA的逻辑结构

分享到:
评论

相关推荐

    sheme 迭代

    Dr.Racket, r5s5语言 写的一个简单迭代,可以计算阶乘。

    sheme 牛顿开方

    Dr.Racket,r5s5 语言 写的 牛顿开方 算法,可以计算平方根。

    毕业设计MATLAB_纽马克时间集成Sheme.zip

    标题“毕业设计MATLAB_纽马克时间集成Sheme.zip”表明这是一个关于MATLAB编程的毕业设计项目,重点可能在于使用MATLAB实现纽马克时间积分方法。纽马克时间积分方法是结构动力学中常用于数值求解偏微分方程的一种算法...

    sheme-hp-pavilion-dv7-(quanta-lx6-7)_quanta_LX6_

    标题“sheme-hp-pavilion-dv7-(quanta-lx6-7)_quanta_LX6_”指的是惠普(HP)Pavilion dv7笔记本电脑的电路原理图,该型号的笔记本电脑由台湾的制造厂商广达电脑(Quanta Computer)生产,其内部设计基于LX6主板平台...

    sheme-hp-pavilion-dv7-(quanta-lx89)_quanta_LX9_

    标题“sheme-hp-pavilion-dv7-(quanta-lx89)_quanta_LX9_”指的是惠普Pavilion dv7笔记本电脑的电路图,它是由Quanta Computer Inc.制造的LX9主板平台。Quanta是一家全球领先的原始设计制造商(ODM),在电子设备...

    计算机结构与设计1.12

    这有助于读者深入探索特定主题或获取更多背景信息。 #### 四、第一台电子计算机:ENIAC 1. **开发背景**:约翰·莫奇利(John Mauchly)和普雷斯珀·埃克特(J.Presper Eckert)在宾夕法尼亚大学的摩尔学院共同研发了...

    SQL Server 2005新特性之表分区的功能

    - 使用`ALTER DATABASE [D] ADD FILEGROUP [GF1]`语句来创建新的文件组。 - 文件组可以分布于不同的大磁盘上,以利用多个磁盘的并发读写能力。 2. **在一个文件组中放置多个文件**: - 例如,为文件组`GF1`分配...

    JetBrainsColorScheme

    导入过程通常在IDE的“首选项”或“设置”中进行,找到“颜色和字体”或“外观和行为”相关选项,然后选择导入或应用`.icls`文件。 另一方面,`Github.jar`可能是一个包含额外资源或者扩展功能的Java归档文件。在...

    MIT.Press,.The.Scheme.Programming.Language.(2003),.3Ed.LiB

    MIT关于Sheme的教程

    synthwave-bbedit:基于synthvawe-vscode的synthwave colorsheme

    SynthWave BBEdit Color Sheme(主题) 这是我为BBEdit创建的主题,该想法基于 。 这个想法很简单。 创建一个看起来很酷的主题,让您想起80年代,您可能从未住过。 没有光泽,没有光泽,看起来很酷,像霓虹灯。 ...

    emacs 使用备忘

    本文档提供的是一份Emacs的使用备忘录,主要涉及Emacs的操作指令和快捷键,涵盖了缓冲区导航、命令执行、缓冲区操作、Shell操作、SHEME编程以及文件操作等方面的内容。 首先,我们来看Emacs的缓冲区导航指令。缓冲...

    M车-项目开发

    5. **电子电路设计**:`M-Car_Sheme.JPG`可能是一个电路原理图,展示如何连接微控制器、传感器和其他电子元件。理解和分析这个图表是理解整个系统工作原理的关键。 6. **硬件文档**:`m-car-0601db.pdf`可能是硬件...

    JSBridge-Android:js与本机之间安全,快速交互的解决方案,最低支持API 14;

    不再使用URL SHEME拦截方式,直接采用webview的addJavaScriptInterface,此方法根据Android跟踪,是目前采用webview方案js与原生交互效率最高的一种系统实现;对于API小于17的用户,1.0.3版本将支持版本降低到14,...

    微型车-项目开发

    2. **M-Car_Sheme.JPG**:这应该是微型车的电路原理图,用于指导硬件搭建。电路图会显示各个电子元件(如电机、电池、微控制器、传感器和无线通信模块)的连接方式,帮助开发者理解和构建汽车的内部结构。通过分析...

    DrScheme lisp

    Lisp 方言 Scheme 的一个解释器,可以按照在 Windows 系统上,使用非常方便,也很只智能。

    无用的盒子-项目开发

    2. **sheme_IIgUVOWynA.fzz**: 这可能是电路原理图文件,用以展示项目的电子连接布局。通过查看该文件,可以理解LED、Arduino以及其他可能的组件如何物理上连接在一起。 3. **sketch_Qrhv3TzOiq.jpg**: 这可能是一...

    One-Button-Game-NINJAs-Journey:这是一个使用处理 2 的单按钮游戏,包含忍者、豆子和其他所有内容

    我们在一篇文章中读到了这个 sheme,当我们讨论它时,我们想试一试。 所以不要责怪我们,因为我们做了这么大而且看起来像代码一样不舒服,只要注意这些简单的编码指南,杰夫贝推荐的和我们目前正在使用的(即使我们...

Global site tag (gtag.js) - Google Analytics