`
izuoyan
  • 浏览: 9221410 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

阅读更多

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

作者:eygle

出处:http://blog.eygle.com

日期:December 22, 2004

« Oracle整合仁科的困难 | Blog首页


从Oracle9i开始Oracle提供了一个新的系统包DBMS_METADATA,可以用于提取对象创建的DDL语句。

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

1.获得表的创建语句.

SQL> desc dbms_metadata
FUNCTION 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的例子进行测试。

<!-- google_ad_client = "pub-1012037994804294"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_channel =""; //-->
分享到:
评论

相关推荐

    Oracle轻松取得建表和索引的DDL语句

    Oracle轻松取得建表和索引的DDL语句是指通过使用Oracle提供的dbms_metadata包来获取建表和索引的DDL语句。这种方法可以解决在9i之前版本中获取DDL语句的麻烦问题。 在 Oracle 9i 中,我们可以直接通过执行dbms_...

    Oracle中轻松取得建表和索引的DDL语句

    我们都知道在9i之前,要想获得建表和索引的语句是一件很麻烦的...在 Oracle 9i中,我们可以直接通过执行dbms_metadata从数据字典中查处DDL语句。使用这个功能强大的工具,我们可以获得单个对象或整个SCHEMA 的DDL语句。

    Oracle9i取得建表和索引的DDL语句

    然而,Oracle 9i引入了一个强大的新特性——`DBMS_METADATA`包,极大地简化了这个过程。 `DBMS_METADATA`是Oracle提供的一个PL/SQL包,允许用户以标准DDL格式提取数据库中的任何元数据,包括表、索引、视图、触发器...

    Oracle 9i轻松取得建表和索引的DDL语句

    Oracle 9i引入了`DBMS_METADATA`包,这是一个非常强大的工具,它允许用户直接从数据字典中提取DDL语句,无论是针对单一对象还是整个SCHEMA,使用都非常简便。`DBMS_METADATA`包的核心在于能够生成符合当前数据库版本...

    ORACLE获取DDL的几种常用的方法[归纳].pdf

    在Oracle数据库管理中,获取DDL(Data Definition Language)是常见的任务,它涉及到创建或修改数据库对象的SQL语句。这篇文章将详细介绍三种常用的Oracle获取DDL的方法。 首先,我们可以通过第三方工具来实现,...

    Oralce11g数据库常见内置程序包

    1. **DBMS_METADATA**:此程序包提供了一组用于生成SQL语句和DDL语句的方法,方便开发者动态创建和修改数据库对象。 2. **DBMS_LOB**:用于操作大对象(LOBs)数据类型,如BLOB和CLOB。 3. **DBMS_ROWID**:提供了对...

    Oracle9i High Performance Tuning with STATSPACK

    2. **分析STATSPACK报告**:使用`ANALYZE`命令或`DBMS_METADATA.GET_DDL`包生成报告,报告中包含SQL语句的执行情况、等待事件分析、表空间使用情况等关键信息。 3. **比较不同时间点的快照**:通过对比不同时间点的...

    sql面试题\oracle面试题目

    - 使用`DBMS_METADATA.GET_DDL('TABLE', 'table_name')`获取更详细的DDL信息。 #### 6. 查看数据库引擎的报错 - 使用`SELECT * FROM v$diag_info`查看诊断信息的位置。 - 使用`SELECT * FROM v$database`和`v$...

    关于ORACLE面试题

    - `DBMS_METADATA.GET_DDL`函数:用于获取对象的定义脚本。 #### 6. 查看数据库日志 - **Alert Log**:包含关于数据库运行的重要警告和错误信息。 - 命令示例:`SELECT * FROM V$DIAG_INFO WHERE NAME LIKE '%...

    oracle傻瓜问题1000问

    要获取触发器、存储过程或函数的创建脚本,可以使用`DBMS_METADATA.GET_DDL`函数: ``` SELECT DBMS_METADATA.GET_DDL('TRIGGER', '触发器名', 'schema_name') AS ddl FROM DUAL; SELECT DBMS_METADATA.GET_DDL('...

    oracle 9i数据库部分知识

    Oracle 9i数据库是Oracle公司推出的数据库管理...以上就是Oracle 9i数据库的一些核心知识点,掌握这些知识对于理解和使用Oracle数据库系统至关重要。在实践中,还需要不断学习和磨练,以适应不断变化的IT环境和需求。

    Oracle应用常见傻瓜问题 1000问

    可以使用`DBMS_METADATA.GET_DDL`函数来获取对象的DDL脚本,例如: ```sql SELECT DBMS_METADATA.GET_DDL('TRIGGER', 'trigger_name') AS ddl FROM dual; ``` #### 12. 如何计算一个表占用的空间的大小? 可以通过...

    oracle statspack 高性能调整技术

    - 用户可以通过`DBMS_STATS.REPORT_STATSPACK`或`DBMS_METADATA.GET_DDL`获取报告,也可以使用企业管理器或第三方工具进行查看。 4. **SQL调优** - StatsPack的Top SQL报告列出了数据库中最消耗资源的SQL语句,这...

    阿里巴巴公司DBA笔试题

    ### 阿里巴巴公司DBA笔试题知识点详解 #### 一、SQL Tuning 类 1. **列举几种表连接方式** - **INNER JOIN**:返回两个表中具有匹配值... - 使用`DBMS_METADATA.GET_DDL('TABLE', '&lt;table_name&gt;')`函数获取DDL语句。

Global site tag (gtag.js) - Google Analytics