dbms_metadata.get_ddl的使用

dbms_metadata.get_ddl的使用
对于这个函数我觉得有以下几个方面的用处。
1、想要详细的了解一个对象的属性。
2、获得对象创建的DDL语句,用于对象的重建或者重用其中的一部分。
SQL> set linesize 300--设置sqlplus 中输出的宽度为足够宽,以免输出换行。
SQL> set long 100000--dbms_metadata.get_ddl 函数返回的类型是clob,所以设置long为足够大。
SQL> set pagesize 0--禁用分页。
SQL> select dbms_metadata.get_ddl('TABLE','T','HR') from dual;
  CREATE TABLE "HR"."T"
   (    "EMPLOYEE_ID" NUMBER(6,0),
        "FIRST_NAME" VARCHAR2(20),
        "LAST_NAME" VARCHAR2(25) NOT NULL ENABLE,
        "EMAIL" VARCHAR2(25) NOT NULL ENABLE,
        "PHONE_NUMBER" VARCHAR2(20),
        "HIRE_DATE" DATE NOT NULL ENABLE,
        "JOB_ID" VARCHAR2(10) NOT NULL ENABLE,
        "SALARY" NUMBER(8,2),
        "COMMISSION_PCT" NUMBER(2,2),
        "MANAGER_ID" NUMBER(6,0),
        "DEPARTMENT_ID" NUMBER(4,0)
   ) SEGMENT CREATION IMMEDIATE
  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 FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
dbms_metadata.get_ddl 常用的有三个参数,object_type 指定对象类型,name 指定对象名称,schema 指定对象所在的schema,默认是 当前用户。dbms_metadata.get_ddl 的输出是可以直接使用的,比如先把表 t 删除。
SQL> drop table t;
Table dropped.
使用刚才 dbms_metadata.get_ddl 的输出,重建表t。
SQL> ed
Wrote file afiedt.buf
  1  CREATE TABLE "HR"."T"
  2     (    "EMPLOYEE_ID" NUMBER(6,0),
  3          "FIRST_NAME" VARCHAR2(20),
  4          "LAST_NAME" VARCHAR2(25) NOT NULL ENABLE,
  5          "EMAIL" VARCHAR2(25) NOT NULL ENABLE,
  6          "PHONE_NUMBER" VARCHAR2(20),
  7          "HIRE_DATE" DATE NOT NULL ENABLE,
  8          "JOB_ID" VARCHAR2(10) NOT NULL ENABLE,
  9          "SALARY" NUMBER(8,2),
 10          "COMMISSION_PCT" NUMBER(2,2),
 11          "MANAGER_ID" NUMBER(6,0),
 12          "DEPARTMENT_ID" NUMBER(4,0)
 13     ) SEGMENT CREATION IMMEDIATE
 14    PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
 15    STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
 16*   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE       DEFAULT)   TABLESPACE "USERS"
SQL> /
Table created.
注:为了更加方便的保存dbms_metadata.get_ddl 的输出,可以使用spool。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-730527/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26110315/viewspace-730527/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值