Chinaunix首页 | 论坛 | 博客
  • 博客访问: 487247
  • 博文数量: 80
  • 博客积分: 2393
  • 博客等级: 大尉
  • 技术积分: 1434
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-03 21:46
个人简介

己所不欲勿施于人!

文章分类

全部博文(80)

文章存档

2017年(1)

2016年(9)

2014年(1)

2013年(17)

2012年(5)

2011年(13)

2010年(9)

2009年(8)

2008年(17)

分类: Oracle

2008-04-22 22:18:23

通过9i的DBMS_METADATA包得到DLL语句
  基本上用到的语法如下:
  a. 获取单个的建表和建索引的语法
  set heading off;
  set echo off;
  Set pages 999;
  set long 90000;
  spool DEPT.sql
  select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
  select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
  spool off;
  b.获取一个SCHEMA下的所有建表和建索引的语法,以scott为例:
  set pagesize 0
  set long 90000
  set feedback off
  set echo off
  spool scott_schema.sql
  connect scott/tiger;
  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;
  c. 获取某个SCHEMA的建全部存储过程的语法
  connect brucelau /brucelau;
  spool procedures.sql
  select
   DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name)
  from
   user_objects u
  where
   object_type = 'PROCEDURE';
  spool off;
  另:
  dbms_metadata.get_ddl('TABLE','TAB1','USER1')
  三个参数中,第一个指定导出DDL定义的对象类型(此例中为表类型),第二个是对象名(此例中即表名),第三个是对象所在的用户名。
  参考:
  ZDNet China《轻松取得Oracle结构描述句法》
  Oracle的官方文档
通过9i的DBMS_METADATA包得到DLL语句
  基本上用到的语法如下:
  a. 获取单个的建表和建索引的语法
  set heading off;
  set echo off;
  Set pages 999;
  set long 90000;
  spool DEPT.sql
  select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
  select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
  spool off;
  b.获取一个SCHEMA下的所有建表和建索引的语法,以scott为例:
  set pagesize 0
  set long 90000
  set feedback off
  set echo off
  spool scott_schema.sql
  connect scott/tiger;
  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;
  c. 获取某个SCHEMA的建全部存储过程的语法
  connect brucelau /brucelau;
  spool procedures.sql
  select
   DBMS_METADATA.GET_DDL('PROCEDURE',u.object_name)
  from
   user_objects u
  where
   object_type = 'PROCEDURE';
  spool off;
  另:
  dbms_metadata.get_ddl('TABLE','TAB1','USER1')
  三个参数中,第一个指定导出DDL定义的对象类型(此例中为表类型),第二个是对象名(此例中即表名),第三个是对象所在的用户名。
  参考:
  ZDNet China《轻松取得Oracle结构描述句法》
  Oracle的官方文档
阅读(1160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~