【求助啊】solaris到windows 导数据乱码,字符集分别为SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1 和 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

esao_252 2008-05-06 11:36:14
源机器信息:Solaris、oracle9.2.0.5.0、字符集:SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1

Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
PL/SQL Release 9.2.0.5.0 - Production
CORE 9.2.0.6.0 Production
TNS for Solaris: Version 9.2.0.5.0 - Production
NLSRTL Version 9.2.0.5.0 - Production

目标机器信息:winxp professional、Oracle9.2.0.1.0、字符集:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

我要从Solaris的这台机器导数据到WinXp的这台机器应该如何操作?操作系统,字符集,oracle版本均不一样。
还有一个问题是,源机器对我而言是不能操作的,只能通过客服端去连接访问。如果可以在源服务器本身做操作,
是不是导数据更简单些?

下面是我尝试的一些操作,导完后中文字符都显示乱码,有些在导入的过程中还提示列值过大。

1、目标机器上做导出
1.1 exp user/pwd@solaris file=e:\fromSolaris.dmp
1.2 imp user/pwd@winxp file=e:\fromSolaris.dmp,导入过程中由一部分提示列值过大,导完后
到数据库中看记录,是中文的都是乱码。

2、目标机器上做导出
2.1 set nls_lang=SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
exp user/pwd@solaris file=e:\fromSolaris.dmp
导出过程中在DOS窗口看到提示信息都是以“靠”开头的,比如某行显示为:靠靠 EQU_INFO 靠...
2.2 修改dmp文件的2,3字节由:00 1F 修改为 03 54
2.3 目标机器上新开一个DOS窗口,不修改DOS窗口的字符集,保持为ZHS16GBK,然后导入,
导入过程中由一部分提示列值过大,导完后到数据库中看记录,是中文的都是乱码。

3、因为不能操作源机器,所以我找了第三台机器,安装了一个Oracle9.2.0.1.0的数据库,安装时
指定字符集为:SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1,但是发现一个问题,我查询这个新装的数据库,
服务端字符集是SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1,但是我看注册表的HOME0中的NLS_LANG却是
SIMPLIFIED CHINESE_CHINA.ZHS16GBK,这是为什么啊? 我做了如下操作。

我在第三台机器上,导出Solaris的数据库,然后导入到第三台机器
3.1 exp user/pwd@solaris file=e:\fromSolaris.dmp
3.2 imp user/pwd@winxp file=e:\fromSolaris.dmp 导入导出过程都正常,但是到数据库中看中文还是乱码

我在第三台机器上,导出Solaris的数据库,然后导入到第三台机器.因为我发现第三台机器,
注册表中ORacle的HOME0的NLS_LANG却是SIMPLIFIED CHINESE_CHINA.ZHS16GBK,所以我尝试如下的
导出,导入操作:
4.1 set nls_lang=SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
exp user/pwd@solaris file=e:\fromSolaris.dmp
导出过程中在DOS窗口看到提示信息都是以“靠”开头的,比如某行显示为:靠靠 EQU_INFO 靠...
3.2 imp user/pwd@winxp file=e:\fromSolaris.dmp 导入导出过程都正常,但是到数据库中看中文
还是乱码
我就是想从源机器导数据到目标机器,该如何操作啊。请高手告知?下面还有一些机器的信息情况

源机器:

SQL> select * from v$nls_parameters;

PARAMETER VALUE
--------------------------------- -----------------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY RMB
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE

目标机器:

SQL> select * from v$nls_parameters;

PARAMETER VALUE
----------------------------- -----------------------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY RMB
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE

19 rows selected

第三台机器:

SQL> select banner from sys.v_$version;

BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

SQL> select * from v$nls_parameters;
PARAMETER VALUE
------------------------- --------------------------------------------------
NLS_LANGUAGE SIMPLIFIED CHINESE
NLS_TERRITORY CHINA
NLS_CURRENCY RMB
NLS_ISO_CURRENCY CHINA
NLS_NUMERIC_CHARACTERS .,
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE SIMPLIFIED CHINESE
NLS_CHARACTERSET WE8ISO8859P1
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY RMB
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
...全文
551 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧