在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';
更详细的可以参考这里 dbms_metadata.get_ddl( )方法查询建表语句及查询结果解析