——GET_DDL:返回元数据为单一对象的DDL。
——这个接口是用来休闲浏览(例如,从SQLPlus)
——与编程上面打开/卖/关闭界面。
——参数:
——object_type检索对象的类型。
——名字对象的名称。
——包含对象的模式——模式。默认为
——调用者# 39;s模式。
——版本的版本对象# 39;元数据。
——模型的对象模型的元数据。
——变换。——XSL-T变换。应用。
——回报:元数据对象转换为CLOB DDL。
函数get_ddl (object_type VARCHAR2,
名字在VARCHAR2,
模式在VARCHAR2默认为空,
版本VARCHAR2默认& # 39;兼容# 39;
模型在VARCHAR2默认& # 39;甲骨文# 39;
变换。VARCHAR2默认& # 39;ddl # 39;)返回CLOB;
1 .得到一个表或索引的ddl语句
选择DBMS_METADATA.GET_DDL(& # 39;表# 39;& # 39;部门# 39;,& # 39;斯科特# 39;)从双;
选择dbms_metadata.get_ddl(& # 39;指数# 39;& # 39;PK_DEPT& # 39;, & # 39;斯科特# 39;)双;
2 .得到一个用户下的所有表,索引,存储过程的ddl
选择DBMS_METADATA.GET_DDL (U。OBJECT_TYPE u.object_name),从user_object u U。OBJECT_TYPE(& # 39;表# 39;& # 39;指数# 39;,& # 39;程序# 39;);
3 .得到所有表空间的ddl语句
选择DBMS_METADATA.GET_DDL(& # 39;表空间# 39;,TS.tablespace_name),从DBA_TABLESPACES TS;
4 .得到所有创建用户的ddl
选择DBMS_METADATA.GET_DDL(& # 39;用户# 39;,U.username)从DBA_USERS U;
==========================================================
9我;中可以利用DBMS_METADATA.GET_DDL包得到数据库的对象的ddl脚本。如下(SQLPLUS中执行):
一。获取单个的建表,视图和建索引的语法
设置页大小0
设置长90000
设置反馈了
使回波
线轴DEPT.sql
选择dbms_metadata.get_ddl(& # 39;表# 39;& # 39;TAB_NAME& # 39;, & # 39;斯科特# 39;)双,,
选择dbms_metadata.get_ddl(& # 39;视图# 39;& # 39;VIEW_NAME& # 39;, & # 39;斯科特# 39;)双,,
选择dbms_metadata.get_ddl(& # 39;指数# 39;& # 39;IDX_NAME& # 39;, & # 39;斯科特# 39;)双;
短管;
,,
b。获取一个模式下的所有建表,视图和建索引的语法,以斯科特为例:
,,
设置页大小0
设置长90000
设置反馈了
使回波
线轴schema.sql
连接斯科特/老虎;
选择DBMS_METADATA.GET_DDL(& # 39;表# 39;,u.table_name)从USER_TABLES u;
,选择DBMS_METADATA.GET_DDL(& # 39;视图# 39;,u.VIEW_name)从USER_VIEWS u;
选择DBMS_METADATA.GET_DDL(& # 39;指数# 39;,u.index_name)从USER_INDEXES u;
短管;
c只,,获取某个模式的建全部存储过程的语法
,,
设置页大小0
设置长90000
设置反馈了
使回波
线轴procedures.sql ,
select ,DBMS_METADATA.GET_DDL(& # 39;程序# 39;,u.object_name)得到,,,user_object u where ,,,object_type=& # 39;程序# 39;;
短管;
d只,,获取某个模式的建全部函数的语法
,,
设置页大小0
设置长90000
设置反馈了
使回波
线轴function.sql ,
select ,DBMS_METADATA.GET_DDL(& # 39;函数# 39;,u.object_name)得到,,,user_object u where ,,,object_type=& # 39;函数# 39;;
短管;