首页 > 数据库 > Oracle > 正文

Oracle9i新特性-使用DBMS_METADATA包获得对象DDL语句

2020-03-09 22:53:17
字体:
来源:转载
供稿:网友
oracle9i新特性-使用dbms_metadata包获得对象ddl语句作者:eygle出处:http://blog.eygle.com日期:december 22, 2004
« oracle整合仁科的困难 | blog首页

从oracle9i开始oracle提供了一个新的系统包dbms_metadata,可以用于提取对象创建的ddl语句。

这个package功能极其强大,我们来看看它的使用方法.

1.获得表的创建语句.

sql> desc dbms_metadatafunction add_transform returns number...function get_ddl returns clob argument name type in/out default? ------------------------------ ----------------------- ------ -------- object_type varchar2 in name varchar2 in schema varchar2 in default version varchar2 in default model varchar2 in default transform varchar2 in default....
sql> set long 2000
sql> select dbms_metadata.get_ddl('table','test') from dual;

dbms_metadata.get_ddl('table','test')
--------------------------------------------------------------------------------

create table "sys"."test"
( "owner" varchar2(30),
"object_name" varchar2(128),
"subobject_name" varchar2(30),
"object_id" number,
"data_object_id" number,
"object_type" varchar2(18),
"created" date,
"last_ddl_time" date,
"timestamp" varchar2(19),
"status" varchar2(7),
"temporary" varchar2(1),
"generated" varchar2(1),
"secondary" varchar2(1)
) pctfree 10 pctused 40 initrans 1 maxtrans 255 nocompress logging
storage(initial 65536 next 1048576 minextents 1 maxextents 2147483645
pctincrease 0 freelists 1 freelist groups 1 buffer_pool default)
tablespace "system"

sql>







2.进一步的,可以通过dbms_metadata获得更全面的ddl语句

oracle提供一个全面的范例:
$oracle_home/rdbms/demo/mddemo.sql
包括索引、授权、触发器等所有ddl语句都可以被提取。

有兴趣的可以参考该文件,按照demo的例子进行测试。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表