由pb连接oracle字符集引发的问题
pb11.5开发的项目,重装电脑后装了pb12.5,对项目修改后发现存在字符集问题而且不能新建数据窗口,于是
想退回到11.5,删除12.5装11.5,结果用11.5打不开12.5的pbt,而且也存在字符集问题。我想会不会是客户端
的问题,下载安装oracle10green客户端,结果怎么都连不了。现在是进退不能啊!详情如下,求大神帮忙分析分析,给个解决方案!谢谢!
server2003+oracle10g(字符集AMERICAN_AMERICA.US7ASCII),xp+pb11.5 v3127+pb12.5+Oracle9i (9.0.1)
客户端+oracle10green客户端
环境变量
nls_lang:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
oracle_home:G:\Oracle10gClientGreen
path:G:\Oracle10gClientGreen\;E:\Sybase\Shared\PowerBuilder;E:\Sybase\PowerBuilder 12.5;C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319;;C:\Oracle\ora90\BIN
客户端注册表,ORACLE项,3处NLS_LANG值为AMERICAN_AMERICA.US7ASCII
oracle10g client配置日志:
Fatal NI connect error 12505, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.100)(PORT=1521))(CONNECT_DATA=
(SID=dbserver)(CID=(PROGRAM=G:\Oracle10gClientGreen\sqlplus.exe)(HOST=ZHMB02)
(USER=Administrator))))
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.4.0 -
Production
Time: 23-4月 -2014 22:13:39
Tracing not turned on.
Tns error struct:
ns main err code: 12564
TNS-12564: Message 12564 not found; No message file for product=NETWORK, facility=TNS
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
以下是测试中文读写结果:
pb11.5 v3127
// Profile dbserver1 读:正常 写:正常
SQLCA.DBMS = "OLE DB"
SQLCA.DBParm = "PROVIDER='MSDAORA',DATASOURCE='dbserver',PBCatalogOwner='system'"
// Profile dbserver 读:乱码 写:乱码
SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.DBParm = "PBCatalogOwner='SYS',NLS_Charset='Local',CnnPool='Yes'"
// Profile dbserver_odb 读:正常 写:正常
SQLCA.DBMS = "ODBC"
SQLCA.DBParm = "ConnectString='DSN=dbserver;UID=heefox;PWD=gxs123',PBCatalogOwner='sys'"
// Profile dbserver_o10
SQLCA.DBMS = "O10 Oracle10g (10.1.0)"
SQLCA.DBParm = "MixedCase=1,ConnectAs='SYSDBA',PBCatalogOwner='SYS'"
提示tns错误
pb12.5
// Profile dbserver_ole 读:正常 写:正常
SQLCA.DBMS = "OLE DB"
SQLCA.DBParm = "PROVIDER='MSDAORA',DATASOURCE='dbserver',PBCatalogOwner='system'"
// Profile dbserver_odb 读:正常 写:正常
SQLCA.DBMS = "ODBC"
SQLCA.DBParm = "ConnectString='DSN=dbserver;UID=heefox;PWD=<******>',PBCatalogOwner='sys'"
// Profile dbserver //错误:failed to get local nls_lang charset id
SQLCA.DBMS = "O90 Oracle9i (9.0.1)"
SQLCA.DBParm = "ConnectAs='SYSDBA',PBCatalogOwner='SYS'"
SQLCA.DBParm = "ConnectAs='SYSDBA',PBCatalogOwner='SYS',NLS_Charset='Local',STRbyCharset=1"
// Profile dbserver //错误:failed to get local nls_lang charset id
SQLCA.DBMS = "O10 Oracle10g (10.1.0)"
SQLCA.DBParm = "MixedCase=1,ConnectAs='SYSDBA',PBCatalogOwner='SYS'"