ITPub博客

首页 > Linux操作系统 > Linux操作系统 > dbms_metadata.get_ddl的使用

dbms_metadata.get_ddl的使用

原创 Linux操作系统 作者:pingley 时间:2012-05-21 21:26:20 0 删除 编辑
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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    741608