–使用 DBMS 包获取索引创建语句
set long 9999 line 9999 pages 9999
SELECT dbms_lob.substr(dbms_metadata.get_ddl(‘INDEX’,INDEX_NAME,‘SCOTT’))||’;’
from dba_indexes
where owner=‘SCOTT’;
–业务用户
conn jieke/jieke123
select dbms_metadata.get_ddl(‘INDEX’,u.object_name) from user_objects u where object_type=‘INDEX’
–利用 expdp、impdp 的 sqlfile 功能生成创建索引的语句。
以 scott 用户为例,也可全库导出。
expdp \’/ as sysdba\’ directory=exp_dir dumpfile=index.dmp schemas=scott logfile=out_index.log cluster=n include=INDEX
impdp \’/ as sysdba\’ directory=exp_dir dumpfile=index.dmp logfile=index.log cluster=n sqlfile=cre_index.sql include=INDEX
注:SQLFILE 参数
该参数可以用于 impdp,主要作用是未真实在目标端执行导入的情况下,生成 sq l文件包含该 dmp 文件的所有 ddl 语句,使用语法为
SQLFILE=[directory_object:]file_name
注意事项:
1.directory_object 可以不和 impdp 的 DIRECTORY 参数不一致,如果是一样,directory_object 可以省略
2.SQLFILE 文件必须写入到磁盘之上,不能写入到 ASM 中
3.SQLFILE 和 QUERY 参数冲突,不能同时使用