在Oracle中,我们获取对象的DDL语句,可以使用 DBMS_METADATA.GET_DDL()函数。

语法结构:

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;

参数解释:

· OBJECT_TYPE:对象的类型,如TABLE、INDEX、FUNTION等;
· NAME: 对象名;
· SCHEMA:对象所在schema,默认为当前用户所在schema;
· VERSION:对象原数据的版本
· MODEL:原数据的类型默认为Oracle
· TRANSFORM:XSL-T transform. to be applied.
返回对象类型 CLOB

一个例子:

SELECT DBMS_METADATA.GET_DDL(OBJECT_TYPE, NAME, SCHEMA) FROM DUAL;

--例子: 获取表的ddl语句,表名为 BAOYW
SELECT DBMS_METADATA.GET_DDL('TABLE', ‘CITY’, 'BAOYW') FROM DUAL;

另一个例子:获取某个SCHEMA下所有表的DDL创建语句

select owner,table_name,num_rows,blocks,avg_row_len,DBMS_METADATA.GET_DDL('TABLE', TABLE_NAME, 'BAOYW') 
from dba_tables where owner = 'BAOYW';

Oracle-获取对象的DDL语句 DBMS_METADATA.GET_DDL()_dbms_metadata

更详细的可以参考这里 dbms_metadata.get_ddl( )方法查询建表语句及查询结果解析