使用DBMS_METADATA包获得对象DDL

从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语句都可以被提取。

时间: 2024-11-03 11:56:41

使用DBMS_METADATA包获得对象DDL的相关文章

DBMS_METADATA包获得对象DDL语句

DBMS_METADATA包获得对象DDL语句 如何利用系统包DBMS_METADATA包中的GET_DDL函数来获取对象的定义语句.下面是该函数的入参和出参: SQL> DESC DBMS_METADATA.GET_DDL PARAMETER   TYPE     MODE DEFAULT? ----------- -------- ---- -------- (RESULT)    CLOB                    OBJECT_TYPE VARCHAR2 IN        

使用dbms_metadata.get_ddl查看对象的定义语句。

当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metadata.get_ddl这个包来查看. dbms_metadata包中的get_ddl函数详细参数  GET_DDL函数返回创建对象的原数据的DDL语句,详细参数如下 -- object_type ---需要返回原数据的DDL语句的对象类型 -- name --- 对象名称 -- schema ---对象所在的Schema,默认为当前用户所在所Schema -- version ---对象原数据的版本 -- model -

使用DBMS_SHARED_POOL包将对象固定到共享池

--****************************************** -- 使用DBMS_SHARED_POOL包将对象固定到共享池 --******************************************         DBMS_SHARED_POOL包提供存储过程来将PL/SQL对象或SQL游标固定到Oracle 共享池.一旦这些对象固定之后,将不再参与aged out,而 是常驻内存,即便是使用alter system flush shared_poo

Oracle9i新特性-使用DBMS

oracle|对象|语句 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

Oracle中提取和存储数据库对象的DDL

oracle|对象|数据|数据库     从对象(例如数据库表.索引.约束.触发器等)中提取DDL命令的普通方法涉及到的操作包括从这些对象中提取元数据(metadata),并把这些数据存储在内存中.尽管目前有很多脚本可以实现这样的功能,但是它们通常都是不完整的或者过时的.幸运的是,Oracle 9.2提供了一个实现这样的功能的API:DBMS_METADATA程序包. 在很多情况下,数据库中数据的维护操作要求我们提取多种对象(例如数据库表.索引.约束.触发器等)的DDL(Data Definit

ORACLE获取DDL的几种常用的方法

oracle ORACLE获取DDL的几种常用的方法   作者:刘颖博 时间:2004-2-26 mail:liuyingbo@126.com,请指正   转载请注明出处及作者   大体的分为三种方法: 一:可以通过toad.plsql develop等第三方工具进行导出DLL操作,用这种办法的好处在于操作简单方便,但需要安装,下面简单介绍一下用这两个工具获得DLL语句的操作.   1.首先是toad工具,可以到www.quest.com网站上下载 操作步骤的简要介绍如下: a.    启动to

PL/SQL DEVELOPER 6对象比较功能说明(原创)

比较|对象|原创 PL/SQL DEVELOPER 6对象比较功能说明(原创)   PL/SQL DEVELOPER 6的对象比较功能非常强大与实用,对于开发人员来说是一个必备的工具,主要有以下用途: 检查两个不同数据库间某个用户下所有对象的不同信息 自动生成用来匹配的SQL脚本 常用于开发数据库与生成数据库对比或者新版数据库与旧数据库   下面我将全面介绍PL/SQL DEVELOPER 6对象比较功能的操作步骤: 1.打开窗口 打开Tools/Compare User Objects-菜单,

如何自动获取Oracle数据库启动时在Shared pool里面的对象(翻译)

oracle|对象|数据|数据库 主题:本文说明在数据库启动的时候,如何自动获取Shared Pool里最常用的过程和包等对象. 正文:  下面用实例来演示Startup之后和Shutdown之前,如何用Triger来完成自动管理的任务. 1.创建一个供Triger调用的Procedure a.创建一个用来保存Procedure和Package的名称的Table(list_tab)     SQL>create table sys.list_tab (owner varchar2(64),NAM

c++-基于winpcap的arp中间人攻击(使用C++),目前无法转发数据包

问题描述 基于winpcap的arp中间人攻击(使用C++),目前无法转发数据包 为了方便叙述,称目标机器为B机器.本机为A机器. 实现思路如下: A机器一直向路由发送arp请求包,问路由的MAC地址,但是arp包里的发送方IP是B机器的,这样就完成了欺骗路由.达到获取B机器数据返回包的目的. 我程序抓包时候解析包了,判断出来HTTP包打印到屏幕上 目前可以成功的看到B机器打开网站后,从路由返回过来的HTTP包 现在的问题主要有两个: 1.设置过滤器的问题 利用winpcap设置过滤器后,就看不