使用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 ---原数据的类型默认为ORACLE

-- transform. - XSL-T transform. to be applied.

-- RETURNS: 对象的原数据默认以CLOB类型返回

dbms_metadata包中的get_ddl函数定义 

FUNCTION get_ddl ( object_type IN VARCHAR2,

name IN VARCHAR2,

schema IN VARCHAR2 DEFAULT NULL,

version IN VARCHAR2 DEFAULT 'COMPATIBLE',

model IN VARCHAR2 DEFAULT 'ORACLE',

transform. IN VARCHAR2 DEFAULT 'DDL') RETURN CLOB; 
SET SERVEROUTPUT ON
SET LINESIZE 1000
SET FEEDBACK OFF
SET LONG  999999
查看表的DDL 语句。
yang@rac1>select dbms_metadata.get_ddl('TABLE','YANGTAB') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLE','YANGTAB')
---------------------------------------------------------------------------
  CREATE TABLE "YANG"."YANGTAB"
   (    "ID" NUMBER,
        "NAME" VARCHAR2(15),
         PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"  ENABLE
   ) 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 "USERS"
查看表空间的DDL 语句。
sys@rac1>select dbms_metadata.get_ddl('TABLESPACE', 'USERS') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLESPACE','USERS')
---------------------------------------------------------------------------
  CREATE TABLESPACE "USERS" DATAFILE
  'D:\ORACLE\ORADATA\ORACL\USERS01.DBF' SIZE 5242880
  AUTOEXTEND ON NEXT 1310720 MAXSIZE 32767M,
  'D:\ORACLE\ORADATA\ORACL\USERS02.DBF' SIZE 943718400
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
   ALTER DATABASE DATAFILE
  'D:\ORACLE\ORADATA\ORACL\USERS01.DBF' RESIZE 347340800
sys@rac1>select dbms_metadata.get_ddl('TABLESPACE', 'EXAMPLE') FROM DUAL;
DBMS_METADATA.GET_DDL('TABLESPACE','EXAMPLE')
---------------------------------------------------------------------------
  CREATE TABLESPACE "EXAMPLE" DATAFILE
  'D:\ORACLE\ORADATA\ORACL\EXAMPLE01.DBF' SIZE 104857600
  AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M
  NOLOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
   ALTER DATABASE DATAFILE
  'D:\ORACLE\ORADATA\ORACL\EXAMPLE01.DBF' RESIZE 314572800
查看 用户的定义语句。
sys@rac1>select dbms_metadata.get_ddl('USER', 'YANG') FROM DUAL;
DBMS_METADATA.GET_DDL('USER','YANG')
---------------------------------------------------------------------------
   CREATE USER "YANG" IDENTIFIED BY VALUES 'S:269264CD30B5AC166D2C9882AB88F
DA20'
      DEFAULT TABLESPACE "USERS"
      TEMPORARY TABLESPACE "TEMP"
查看 索引的定义语句:
yang@rac1>select index_name ,table_name from user_indexes;

INDEX_NAME                     TABLE_NAME
------------------------------ ------------------------------
SYS_C0010473                   YANG_B
SYS_C0010476                   YANG_A
SYS_C0010278                   YANGTAB2
SYS_C0010277                   YANGTAB
SYS_C0010286                   MV_YANGTAB2
SYS_C0010285                   MV_YANGTAB
ID_SEQNO                       DA_TEST
yang@rac1>select dbms_metadata.get_ddl('INDEX','ID_SEQNO') FROM DUAL;
DBMS_METADATA.GET_DDL('INDEX','ID_SEQNO')
--------------------------------------------------------------------------------
  CREATE INDEX "YANG"."ID_SEQNO" ON "YANG"."DA_TEST" ("SEQNO")
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"
yang@rac1>select dbms_metadata.get_ddl('INDEX','SYS_C0010285') FROM DUAL;
DBMS_METADATA.GET_DDL('INDEX','SYS_C0010285')
--------------------------------------------------------------------------------
  CREATE UNIQUE INDEX "YANG"."SYS_C0010285" ON "YANG"."MV_YANGTAB" ("ID")
  PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "USERS"

时间: 2024-11-05 04:50:48

使用dbms_metadata.get_ddl查看对象的定义语句。的相关文章

dbms_metadata.get_ddl()来获得对象的定义语句

今天打算将一个数据库的索引在另一个测试库上重新创建一遍,研究了一下. set pagesize 0 set long 90000 set feedback off set echo off spool all_index.sql SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u; spool off; 最后找个编辑器替换一下表空间名,在表空间名后面加上个; 然后让ORACLE慢慢执行吧 其实是调用DBMS

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        

查看一个Oracle表的数据定义语句。

oracle|数据|语句 前提:要求使用SQL PLUS. SQL> set pages 0 SQL> set long 1000000 SQL> select dbms_metadata.get_ddl('TABLE','表名','用户名') from dual;

SQL Server中授予用户查看对象定义的权限

SQL Server中授予用户查看对象定义的权限   在SQL Server中,有时候需要给一些登录名(用户)授予查看所有或部分对象(存储过程.函数.视图.表)的定义权限存.如果是部分存储过程.函数.视图授予查看定义的权限,那么就像下面脚本所示,比较繁琐:     GRANT VIEW DEFINITION ON  YOUR_PROCEDURE TO   USERNAME;   GRANT VIEW DEFINITION ON  YOUR_FUNCTION TO USERNAME;   GRAN

如何查找某个对象的定义(V$

对象 经常遇到需要查找某个对象的定义的情况,下面针对不同类型的对象分别讨论: 一.V$视图和X$视图 普通用户不能访问V$视图:SQL> conn lunar/lunar@test1已连接.SQL> select * from user_sys_privs; USERNAME                       PRIVILEGE                                ADMIN_OPTION------------------------------ ----

使用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 --------------------

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 off 1)获得表.索引.视图.存储过程.函数的DDL select dbms_metadata.get_ddl('TABLE','TABLE_NAME','TABLE_OWNER') from dual;

执行DBMS_METADATA.get_ddl报ORA-39212的解决方法

环境:    数据库:oracle 10.2.0.4 --64位    操作系统:红旗dc 5.0  --64位 以sys登陆,执行DBMS_METADATA.get_ddl得到某个表空间的元数据报错select DBMS_METADATA.get_ddl('TABLESPACE','PDA') from dual;ERROR:ORA-39212: installation error: XSL stylesheets not loaded correctlyORA-06512: at "SYS

脚本对象的定义

对象|脚本     第5章 脚本运行期库对象       前面章节已经介绍了ASP如何使用在服务器上定义的对象的实例,充分利用所提供的方法和属性扩展ASP的性能.有一系列的对象可供使用,包括脚本对象和标准IIS/ASP安装的组件,以及自己创建的或者从其他供应商处购买的对象.也可以在互联网上各种网站免费下载对象,并在自己的页面上使用.       这一章将讨论由ASP脚本环境提供的一般称为"脚本运行期库"(Scripting Runtime Library)的对象.这些对象通过正在使用的