如何获取指定对象所有创建表的DDL脚本
适用于:
数据库企业版,版本10gr1~11gr2.文档适用于任何操作系统平台
目标:
文档介绍如何在单一的sql语句中运用dbms_metadata函数包获取指定对象创建所有表的DDL脚本语句
方法:
用指定用户(想要获取哪个用户创建表的DDL,就用哪个用户连接数据库)连接到数据库中,执行
SET LONG 2000000
SET PAGESIZE 0
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false); 代码成功后,执行
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u
WHERE u.nested='NO' AND (u.iot_type is null or u.iot_type='IOT'); 查询语句,在此将会返回当前用户创建所有表的DDL语句,最后执行
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'DEFAULT'); 代码将dbms_metadata函数包转换状态函数修改成默认状态