背景:
本机plsqldev连接生产和测试环境,生产上的oracle版本比测试上的oracle版本高,
导致从生产上expdp出的dmp文件无法导入测试上的oracle。
解决:
一、先从高版本oracle中导出dmp文件
1、"开始"中输入sqlplus,然后用户/密码登录,
SQL> create directory expdir as 'f:/20150706_data';
2、SQL> grant read,write on directory expdir to public;
3、exit;退出
4、C:\Users\lenovo>
expdp esp/Haieresp@esp schemas=esp directory=expdir dumpfile=expdp.dmp version=10.2.0.2.0
注意点:--version=10.2.0.2.0 以较低版本导出
二、再将dmp文件导入到低版本oracle
1、"开始"中输入sqlplus,然后用户名/密码登录
SQL> create directory db_bak as 'f:\data';
2、exit;
3、C:\Users\lenovo>
impdp esp/Haieresp schemas=esp directory=db_bak dumpfile=expesp.dmp REMAP_SCHEMA=user1:user2 EXCLUDE=USER;
如果导入时用户名与导出用户名不同
如果想导入的用户已经存在:
1. 导出用户 expdp user1/pass1 directory=dumpdir dumpfile=user1.dmp
2. 导入用户 impdp user2/pass2 directory=dumpdir dumpfile=user1.dmp
REMAP_SCHEMA=user1:user2 EXCLUDE=USER
注意点:--impdp导入dmp文件时,如果数据不同了schemas=esp指定数据,如果用户不同了REMAP_SCHEMA=user1:user2 EXCLUDE=USER指定用户