259人阅读评论(0)收藏举报

Oracle 如何查询一个对象的完整定义语句 

语法:

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;

示例:select dbms_metadata.get_ddl('TABLE','EMP','SCOTT') from dual;


  1. SQL> select dbms_metadata.get_ddl('TABLE','EMP','SCOTT'from dual;  

  2. DBMS_METADATA.GET_DDL('TABLE','EMP','SCOTT')  

  3. -------------------------------------------------------------------------------- 

  4. CREATETABLE"SCOTT"."EMP"

  5.    (    "EMPNO" NUMBER(4,0),  

  6. "ENAME" VARCHAR2(10),  

  7. --设置LONG和pagesize后能完全显示 

  8. SQL> SET LONG 2000000  

  9. SQL> SET PAGESIZE 0  

  10. SQL> select dbms_metadata.get_ddl('TABLE','EMP','SCOTT'from dual;  

  11. CREATETABLE"SCOTT"."EMP"

  12.    (    "EMPNO" NUMBER(4,0),  

  13. "ENAME" VARCHAR2(10),  

  14. "JOB" VARCHAR2(9),  

  15. "MGR" NUMBER(4,0),  

  16. "HIREDATE"DATE,  

  17. "SAL" NUMBER(7,2),  

  18. "COMM" NUMBER(7,2),  

  19. "DEPTNO" NUMBER(2,0),  

  20. CONSTRAINT"PK_EMP"PRIMARYKEY ("EMPNO")  

  21.   USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS

  22.   STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645  

  23.   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT

  24.  CELL_FLASH_CACHE DEFAULT)  

  25.   TABLESPACE "USERS"  ENABLE,  

  26. CONSTRAINT"FK_DEPTNO"FOREIGNKEY ("DEPTNO")  

  27. REFERENCES"SCOTT"."DEPT" ("DEPTNO") ENABLE  

  28.    ) SEGMENT CREATION IMMEDIATE  

  29.   PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING  

  30.   STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645  

  31.   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)  

  32.   TABLESPACE "USERS"