Welcome 微信登录

首页 / 数据库 / MySQL / [Oracle] dbms_metadata.get_ddl的用法总结

dbms_metadata.get_ddl()用于获取对象的DDL,其具体用法如下。注意:在sqlplus里,为了更好的展示DDL,需要设置如下参数:set line 200
set pagesize 0
set long 99999
set feedback off
set echo off1)获得表、索引、视图、存储过程、函数的DDLselect dbms_metadata.get_ddl("TABLE","TABLE_NAME","TABLE_OWNER") from dual;select dbms_metadata.get_ddl("INDEX","INDEX_NAME","INDEX_OWNER") from dual;select dbms_metadata.get_ddl("VIEW","VIEW_NAME","VIEW_OWNER") from dual;select dbms_metadata.get_ddl("PROCEDURE","PROCEDURE_NAME","PROCEDURE_OWNER") from dual;select dbms_metadata.get_ddl("FUNCTION","FUNCTION_NAME","FUNCTION_OWNER") from dual;下面这个脚本用于获得某个schema下所有的表、索引、视图、存储过程、函数的DDLset pagesize 0
set long 90000
set feedback off
set echo off
spool schema_ddl.sql
SELECT DBMS_METADATA.GET_DDL("TABLE",u.table_name,u.owner) FROM DBA_TABLES u;
SELECT DBMS_METADATA.GET_DDL("VIEW",u.view_name,u.owner) FROM DBA_VIEWS u;
SELECT DBMS_METADATA.GET_DDL("INDEX",u.index_name,u.owner) FROM DBA_INDEXES u;
select dbms_metadata.get_ddl("PROCEDURE",u.object_name, u.owner,) from dba_objects u where u.object_type = "PROCEDURE";
select dbms_metadata.get_ddl("FUNCTION",u.object_name, u.owner,) from dba_objects u where u.object_type = "FUNCTION";
spool off;2)获得表空间的DDL获得单个表空间的DDL:select dbms_metadata.get_ddl("TABLESPACE","TBS_NAME") from dual;获得所有表空间的DDL:SELECT DBMS_METADATA.GET_DDL("TABLESPACE", TS.tablespace_name)
FROM DBA_TABLESPACES TS;3)获得用户的DDL获得单个用户的DDL:select dbms_metadata.get_ddl("USER","EPAY_USER") from dual;获得所有用户的DDL:SELECT DBMS_METADATA.GET_DDL("USER",U.username)
FROM DBA_USERS U;更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12解决 ORA-00060: Deadlock detected 小例MySQL数据库的日常使用及维护相关资讯      oracle 
  • [INS-32052] Oracle基目录和Oracle  (07/22/2014 07:41:41)
  • Liferay Portal 配置使用Oracle和  (07/31/2012 20:07:18)
  • Concurrent Request:Inactive   (07/20/2012 07:44:05)
  • Oracle 4个大对象(lobs)数据类型  (02/03/2013 12:33:05)
  • Oracle按时间段分组统计  (07/26/2012 10:36:48)
  • ORA-14037 :解决办法  (01/13/2012 20:56:31)
本文评论 查看全部评论 (0)
表情: 姓名: 字数