索引全部导出在新库执行

既然索引已经删除了,就需要从原数据库中导出创建索引的脚本,索引是依附于表而存在的,没有办法用exp/expdp工具单独导出创建索引的脚本,不过我们可以通过如下方法进行:

1 生成批量导出索引的语句

在sqlplus中运行spool create_create_index . SQL SELECT 'select dbms_metadata.get_ddl(' 'INDEX' ', '  ||  '' '' || INDEX_NAME || '' ''  ||  ') from dual;' FROM user_indexes ;spool off

2 生成创建索引的sql语句

在sqlplus中运行spool create_index . SQL@create_create_index . SQLspool off

得到b.sql文件中即为创建索引的语句

3 创建索引

在sqlplus中运行@create_index . SQL

另外,如果用的是expdp迁移的话,在impdp的时候有一个SQLFILE参数,可以生成所有的ddl,这也包括所有的create index语句,但这个方法需要有expdp文件,另外需要在所有的ddl中选出相应的create index语句,相对以上方法较为复杂。

你可能感兴趣的:(oracle)