全面学习DBMS包之DBMS_METADATA

DBMS_METADATA用的最多的还是get_ddl函数,该函数返回clob类型。We can use it to fetch DDL for objects......
定义:
dbms_metadata.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;
下面来看一个例子:

SQL
>   set  pagesize  0
SQL
>   set   long   10000
SQL
>   select  dbms_metadata.get_ddl( ' TABLE ' , ' BZLB ' from  dual;

  
CREATE   TABLE  "JRGAZX"."BZLB"
   (    "T_BZLB_ID" 
NUMBER ( 10 , 0 NOT   NULL  ENABLE,
        "GUID" 
VARCHAR2 ( 38 NOT   NULL  ENABLE,
        "FTZW" 
VARCHAR2 ( 50 ),
        "JTZW" 
VARCHAR2 ( 50 ),
        "YWJC" 
VARCHAR2 ( 100 ),
        "YWQC" 
VARCHAR2 ( 200 ),
        "ZHXGRQ" DATE 
NOT   NULL  ENABLE,
        "GKBZ" 
NUMBER ( 3 , 0 ),
        "SCBZ" 
NUMBER ( 3 , 0 ),
         
CONSTRAINT  "PRI_BZLB_T_BZLB_ID"  PRIMARY   KEY  ("T_BZLB_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 "JRGAZX"  ENABLE,
         SUPPLEMENTAL 
LOG  DATA ( PRIMARY   KEY ) COLUMNS,
         SUPPLEMENTAL 
LOG  DATA ( UNIQUE   INDEX ) COLUMNS,
         SUPPLEMENTAL 
LOG  DATA ( FOREIGN   KEY ) COLUMNS
   ) 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 "JRGAZX"

SQL
>
在开发过程中可以使用它来获得所有数据库对象的DDL语句,包括索引,约束,授权,视图,物化视图等等


你可能感兴趣的:(meta)