如果我们想看某个表或者表空间等数据库对象的DDL语句的话,可以使用Oracle函数DBMS_METADATA.GET_DDL()函数获取,该函数有如下几个参数:
-- OBJECT_TYPE ---需要返回原数据的DDL语句的对象类型
-- NAME --- 对象名称
-- SCHEMA ---对象所在的Schema,默认为当前用户所在所Schema
-- VERSION ---对象原数据的版本
-- MODEL ---原数据的类型默认为ORACLE
-- TRANSFORM - XSL-T transform. to be applied.
-- RETURNS: 对象的原数据默认以CLOB类型返回
下面以我的数据表为例,列出几个查看表、索引、约束、视图等数据库对象的DDL的SQL语句:
--查看DM_TOUCH表的DDL语句
SELECT DBMS_METADATA.GET_DDL('TABLE','DM_TOUCH') AS TABLE_DDL FROM DUAL;
--查看其它用户表的DDL语句
SELECT DBMS_METADATA.GET_DDL('TABLE','DM_TOUCH','TPIDEV') AS TABLE_DDL FROM DUAL;
--查看DM_TOUCH表的索引
SELECT T.INDEX_NAME,T.INDEX_TYPE,T.TABLE_NAME FROM USER_INDEXES T
WHERE T.TABLE_NAME='DM_TOUCH' ORDER BY INDEX_NAME;
--查看DM_TOUCH表索引的DDL
SELECT DBMS_METADATA.GET_DDL('INDEX','PK_DM_TOUCH') AS DDL_INDEX FROM DUAL;
--查看其它用户表索引的DDL
SELECT DBMS_ME