用PB开发软件,数据为Oracle9.2 ,不安装客户端,直接将oracle10g即时客户端的oci.dll、oraociei10.dll、 ociw32.dll、orannzsbb10.dll、oraocci10.dll、ocijdbc10.dll的文件和tnsnames.ora配置文件拷贝到程序执行目录,运行程序,连接数据库正常,但数据库库中的汉字为乱码,在注册表中增设[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]目录,在该目录下建立一个字符串值: 
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 设置语言后,还是乱码,怎样解决?

解决方案 »

  1.   

    可能是注册表的位置不对,看我这里的:
    [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1]
    这下面建一个NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
      

  2.   

    试过,不行.我觉得关键问题是怎样设置oracle10g即时客户端的语言.
      

  3.   

    首先,在安装ORACLE服务器的机器上搜索下列文件,
    oci.dll
    ocijdbc10.dll
    ociw32.dll
    orannzsbb10.dll
    oraocci10.dll
    oraociei10.dll
    sqlnet.ora
    tnsnames.ora
    classes12.jar
    ojdbc14.jar
       
      
      
       
    制作成压缩文件,配置目标计算机使用。1.将oracleinstantclient.rar解压缩到一个目录, 如d:\oracleinstantclient2.配置d:\oracleinstantclient的tnsnames.ora文件,只需要修改其中的服务器地址、服务名称和端口。 3、配置环境变量,在PATH变量中加入d:\oracleinstantclient4、注册表加入下面键值      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment]"LD_LIBRARY_PATH"="d:\OracleInstantClient""NLS_LANG"="AMERICAN_AMERICA.ZHS16GBK""TNS_ADMIN"="d:\OracleInstantClient"5、如果是ASP.NET应用,则要为ASPNET用户分配d:\oracleinstantclient文件夹的读写权限。通过上面的设置后,即可实现免安装ORACLE客户端,连接到ORACLE数据库服务器。也可以将上面解压缩后的文件和手动过程制作成安装包,实现自动安装。注意:1、用上面的方法,连接oracle9.2,应该也没有问题。2、如果使用JDBC连接,需要到官网下载instantclient-jdbc-win32-10.1.0.2.zip:   包含JDBC   Driver的包
      

  4.   

    非常感谢codearts,测试成功(PB连接),用此方法,以后大家连接数据库就不必安装Oracle客户端了.
    总结一下:
    1.将oracle10g即时客户端(需安装后才可找到)的
        oci.dll
       oraociei10.dll
       ociw32.dll
       orannzsbb10.dll
       oraocci10.dll
       ocijdbc10.dll
    文件找到,拷贝到自己的程序执行目录下。
    2.将以前安装连接正常的tnsnames.ora配置文件拷贝到程序执行目录。
    3.配置环境变量,在PATH变量中加入自己的程序执行目录。
    4.注册表加入下面键值
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] 
    "LD_LIBRARY_PATH"="自己的程序执行目录" 
    "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 
    "TNS_ADMIN"="自己的程序执行目录" 
    5.执行程序,一切OK!
      

  5.   

    重新测试,修改如下: 
    1.将oracle10g即时客户端(需安装后才可找到)的 
        oci.dll 
      oraociei10.dll 
      ociw32.dll 
      orannzsbb10.dll 
      oraocci10.dll 
      ocijdbc10.dll 
    文件找到,拷贝到自己的程序执行目录下。 
    2.将以前安装连接正常的tnsnames.ora配置文件拷贝到程序执行目录。  
    3.注册表加入下面键值 
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment] 
    "NLS_LANG"="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" 
    4.执行程序,一切OK! 
    (可能需重新启机后,注册表设置才可生效)