oracle9i数据库字符集为ASCII码,数据导入oracle11g字符集为utf8的数据库中。

来源:互联网 发布:java十大常用设计模式 编辑:程序博客网 时间:2024/05/22 03:47
问题场景:低版本oracle9i数据库,字符集编码格式为ASCII码,要把orac9i数据库导出为dmp文件,导入到字符集编码格式为utf8


orac11g中,会出现中午乱码


解决方法:

第一:首先要将高版本的oracle11g,字符集由utf8设置为ASCII码

--修改字符集SHUTDOWN IMMEDIATE;STARTUP MOUNT EXCLUSIVE;ALTER SYSTEM ENABLE RESTRICTED SESSION;ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;ALTER SYSTEM SET AQ_TM_PROCESSES=0;ALTER DATABASE OPEN;ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE US7ASCII;(如果不行试一下:ALTER DATABASE character set INTERNAL_USE US7ASCII;这种方法绕过字符集检查)SHUTDOWN immediate;startup;

第二步:从低版本oracle9i数据库导出dmp文件

注意:EXP导出的不能跨版本导入,应该使用EXPDP加version参数导出。

expdp 用户名/密码@sid directory=dpdata1 dumpfile=expdp.dmp query='WHERE rownum<=100' SCHEMAS=用户名:用户名 version=导入库的版本号;


第三步:使用ssh登陆oracle11g服务端导入dmp文件

注意:首先要将dmp文件放在oracle数据库DATA_PUMP_DIR指定路径下。

--oracle通过impdp导入不同表用户、不同表空间的数据 impdp fpbjy/fpbjy@10.19.22.91:1521/orcl directory=DATA_PUMP_DIR dumpfile=FPBJY.DMP REMAP_SCHEMA=fpbjy:fpbjy remap_schema=fpbj:fpbjy remap_tablespace=TS_FPBJ:TS_FPBJY   full=y 


导入时可能会报ORA-39006: internal error
ORA-39213: Metadata processing is not available元数据处理错误


解决方法:

参照我的博客http://blog.csdn.net/u013310119/article/details/71630825



1 0
原创粉丝点击