您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

获取数据库或SHEME的DDL语句

2025/12/11 20:06:46发布14次查看
获取数据库或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的逻辑结构
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product