一、ORACLE8动态库文件、ORACLE配置文件、PB动态库如下,跟pb应用程序放在同一目录下
COREJAVA.DLL
ctl3d32.dll
msvcrt.dll
msvcrt40.dll
OCIW32.DLL
odbc16gt.dll
odbc32.dll
odbc32gt.dll
odbccp32.dll
odbccr32.dll
odbcint.dll
olepro32.dll
oraclient8.dll
oraclm32.dll
oracommon8.dll
ORACORE8.DLL
orageneric8.dll
oraldapclnt8.dll
oran8.dll
ORANCDS8.DLL
orancrypt8.dll
oranhost8.dll
oranl8.dll
oranldap8.dll
ORANLS8.DLL
orannds8.dll
orannms8.dll
orannzsbb8.dll
oranoname8.dll
oranro8.dll
orantns8.dll
ORAPLS8.DLL
ORASLAX8.dll
ORASQL8.DLL
ORATRACE8.DLL
oravsn8.dll
orawtc8.dll
pbdwe60.dll
pbo7360.dll
pbodb60.dll
pborc60.dll
pbsyc60.dll
pbvm60.dll
sqlnet.ora
tnsnames.ora
二、在客户机上建立目录:c:\oracle\ora81\bin,将安装了oracle环境机器的相应目录\oracle\ora81\bin下的文件拷贝过来
三、修改注册表
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"="c:\\oracle\\ora81"
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\HOME0]
"ORACLE_HOME"="c:\\oracle\\ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
四、执行程序
经过如上操作,pb应用程序可以连结数据库,也能检索数据,但是汉字显示为乱码,我的服务器端数据库字符集为ZHS16GBK,因此客户端的注册表也设置了"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK",但是问题依然如此,请各位帮忙指点,谢谢!
虽然这方面的贴子不少,但好像不是很系统,最近也都被删掉了,所以只好新开一个,希望大家能理解。
16 个解决方案
#1
服务器端字符集为ZHS16GBK,但是nls_lang设置是什么?
#2
服务器端
NLS_LANGUAGE=SIMPLIFIED CHINESE
NLS_CHARACTERSET=ZHS16GBK
NLS_LANGUAGE=SIMPLIFIED CHINESE
NLS_CHARACTERSET=ZHS16GBK
#3
gz
我也作过类似的东西,不过前台不是PB,但没有出现问题.
我做的动作和你的差不多,应该不会有什么问题。
服务器段和客户端一致就应该没问题了!!
我也作过类似的东西,不过前台不是PB,但没有出现问题.
我做的动作和你的差不多,应该不会有什么问题。
服务器段和客户端一致就应该没问题了!!
#4
我也很奇怪,但是问题就是解决不了,请各位帮忙
#5
就没有人做过类似的操作?
#6
NLS_lang使用zhs16cgb231280 试一下,按理说不应出现问题。如果依然不行,到数据库中检查一下你的系统字符集是什么,有可能你的oracle系统字符集不是中文的(系统字符集在安装oracle时指定)。建议你在客户端安装个sqlplus测试一下。
#7
使用zhs16cgb231280 也不行
#8
我重新安装oracle客户端,问题当然可以解决了,为什么我拷贝另外一台机器oracle目录下的文件再设置注册表就不行呢?而那台机器没有乱码问题
#9
建议直接使用网上路径:
\oracle\ora81\bin下的文件拷贝过来
比如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"=网上共享的ORACLE地址
另外,你如果在注册表中只修改这两个地方,应该不行,尽量再修改些。
如果拷贝,不应该只拷贝bin下的东西,建议将注册表中ORACLE的地址指针直接指向网络ORACLE的共享目录。
\oracle\ora81\bin下的文件拷贝过来
比如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"=网上共享的ORACLE地址
另外,你如果在注册表中只修改这两个地方,应该不行,尽量再修改些。
如果拷贝,不应该只拷贝bin下的东西,建议将注册表中ORACLE的地址指针直接指向网络ORACLE的共享目录。
#10
我怀疑这个问题的前提不对,是否必须要装客户端?
#11
为了验证你的客户端倒底是什么NLS_LANG
请查询
select * from nls_session_parameters (在客户端运行)
请查询
select * from nls_session_parameters (在客户端运行)
#12
如果能执行select * from nls_session_parameters (在客户端运行),我一定是装了oracle的客户端了,安装客户端,也就不存在乱码问题了。
执行结果为:
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_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 TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY RMB
NLS_COMP BINARY
执行结果为:
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_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 TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY RMB
NLS_COMP BINARY
#13
字符集必须一致
#14
增加
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"PATH"="c:\\oracle\\ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
试试看,要退出程序,重新进入
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"PATH"="c:\\oracle\\ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
试试看,要退出程序,重新进入
#15
我曾经将一台机器上的oracle全部文件拷贝到另一台机器上,然后将注册表导入,没出现乱码,建议你当另一台机器上的oracle注册表export出来,然后在本机器上导入。应该没问题,除非你拷贝的文件中缺少 中文字符集的支撑文件。
#16
jin0607(dd):你倒入的注册表是oracle的吗?能不能详细说说,都是那些项目?
#1
服务器端字符集为ZHS16GBK,但是nls_lang设置是什么?
#2
服务器端
NLS_LANGUAGE=SIMPLIFIED CHINESE
NLS_CHARACTERSET=ZHS16GBK
NLS_LANGUAGE=SIMPLIFIED CHINESE
NLS_CHARACTERSET=ZHS16GBK
#3
gz
我也作过类似的东西,不过前台不是PB,但没有出现问题.
我做的动作和你的差不多,应该不会有什么问题。
服务器段和客户端一致就应该没问题了!!
我也作过类似的东西,不过前台不是PB,但没有出现问题.
我做的动作和你的差不多,应该不会有什么问题。
服务器段和客户端一致就应该没问题了!!
#4
我也很奇怪,但是问题就是解决不了,请各位帮忙
#5
就没有人做过类似的操作?
#6
NLS_lang使用zhs16cgb231280 试一下,按理说不应出现问题。如果依然不行,到数据库中检查一下你的系统字符集是什么,有可能你的oracle系统字符集不是中文的(系统字符集在安装oracle时指定)。建议你在客户端安装个sqlplus测试一下。
#7
使用zhs16cgb231280 也不行
#8
我重新安装oracle客户端,问题当然可以解决了,为什么我拷贝另外一台机器oracle目录下的文件再设置注册表就不行呢?而那台机器没有乱码问题
#9
建议直接使用网上路径:
\oracle\ora81\bin下的文件拷贝过来
比如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"=网上共享的ORACLE地址
另外,你如果在注册表中只修改这两个地方,应该不行,尽量再修改些。
如果拷贝,不应该只拷贝bin下的东西,建议将注册表中ORACLE的地址指针直接指向网络ORACLE的共享目录。
\oracle\ora81\bin下的文件拷贝过来
比如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Oracle]
"ORACLE_HOME"=网上共享的ORACLE地址
另外,你如果在注册表中只修改这两个地方,应该不行,尽量再修改些。
如果拷贝,不应该只拷贝bin下的东西,建议将注册表中ORACLE的地址指针直接指向网络ORACLE的共享目录。
#10
我怀疑这个问题的前提不对,是否必须要装客户端?
#11
为了验证你的客户端倒底是什么NLS_LANG
请查询
select * from nls_session_parameters (在客户端运行)
请查询
select * from nls_session_parameters (在客户端运行)
#12
如果能执行select * from nls_session_parameters (在客户端运行),我一定是装了oracle的客户端了,安装客户端,也就不存在乱码问题了。
执行结果为:
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_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 TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY RMB
NLS_COMP BINARY
执行结果为:
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_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 TZH:TZM
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZH:TZM
NLS_DUAL_CURRENCY RMB
NLS_COMP BINARY
#13
字符集必须一致
#14
增加
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"PATH"="c:\\oracle\\ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
试试看,要退出程序,重新进入
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\ID0]
"PATH"="c:\\oracle\\ora81"
"NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
试试看,要退出程序,重新进入
#15
我曾经将一台机器上的oracle全部文件拷贝到另一台机器上,然后将注册表导入,没出现乱码,建议你当另一台机器上的oracle注册表export出来,然后在本机器上导入。应该没问题,除非你拷贝的文件中缺少 中文字符集的支撑文件。
#16
jin0607(dd):你倒入的注册表是oracle的吗?能不能详细说说,都是那些项目?