如何解决Oracle expdp/impdp数据迁移过程中字符集不一致的问题
这篇文章给大家介绍如何解决Oracle expdp/impdp数据迁移过程中字符集不一致的问题,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
前提:
源端字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
目标端字符集:AMERICAN _ AMERICA. AL32UTF8
1. 查询源端和目标端字符集类型:select userenv('language') from dual;
2. 修改目标端字符集:
3. shutdown immediate;
4. STARTUP MOUNT;
5. ALTER SYSTEM ENABLE RESTRICTED SESSION;
6. ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
7. ALTER SYSTEM SET AQ_TM_PROCESSES=0;
8. ALTER DATABASE OPEN;
9. ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK;
10. alter system set NLS_LANGUAGE='SIMPLIFIED CHINESE' scope=spfile;
11. alter system set NLS_TERRITORY='CHINA' scope=spfile;
12. shutdown immediate;
13. startup;
14. 再次查看可看到字符集已与源端字符集一致。
15. 将导出的DMP文件上传到Linux的/home/oracle目录
16. 进入数据库,创建impdp路径:create directory expdir as '/home/oracle';
17. 授予system用户读写该路径权限:grant read,write on directory expdir to system;
18. 执行impdp操作:impdp system/***** directory=expdir dumpfile=$exp.dmp full=y logfile=$imp.log
关于如何解决Oracle expdp/impdp数据迁移过程中字符集不一致的问题就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。