这两天遇到一个由于使用自定义类型导致dmp文件无法导入的问题,网上提问的多,但响应较少。
具体看下面:
imp操作步骤:
1、将dmp文件导入数据库
C:\TMP> imp test/test@orcl file=expdat.dmp log=impdat.log ignore=y fromuser=test touser=test
2、检查impdat.log,把所有含create type的sql找出来并整理脚本,将含OID=‘XXXXXXXXXXXXX’删除,再用test登录数据库,将这些type手工建一遍
3、再用imp工具生成indexfile,此时不会再导入数据,但会生成一test.sql脚本
C:\TMP> imp test/test@orcl file=expdat.dmp log=impdat.log ignore=y fromuser=test touser=test indexfile=test.sql
4、整理test.sql,去掉REM注释及OID等 ,用test登录数据库,执行该脚本
5、用imp工具将未导入的表重新导入一次。
C:\TMP> imp test/test@orcl file=expdat.dmp log=impdat.log ignore=y fromuser=test touser=test tables=(tableA ,TableB,……)