Home >Database >Mysql Tutorial >获取数据库或SHEME的DDL语句

获取数据库或SHEME的DDL语句

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 14:58:411402browse

获取数据库或SHEME的DDL语句 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_metad

获取数据库或SHEME的DDL语句

 

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的逻辑结构

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn