今天把项目应用部署到了64位的操作系统上,发现数据库oracle安装后,pl/sql无法正常使用,报错:sql*net not properly installed
经上网查询,发现是oracel客户端的问题,plsql支持不了64位的oracle客户端,具体解决方法如下:
1、下载32的ORACEL客户端,并拷到服务器上,路径:C:\Oracle\instantclient_11_2
2、PLSQL设置客户端路径,tools->perferences->Connection ,找到Oracle Home路径设置成:C:\Oracle\instantclient_11_2;
OCI library设置成:C:\Oracle\instantclient_11_2\oci.dll
终于可以正常用PLSQL正常连接上数据库,但随后又发现一个问题,查询出来的中文是乱码,这个应该不用想就知道是数据库的字符集和客户端字符集不一致造成,select userenv('language') from dual;查询数据库字条集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,按理说可以直接修改注册表的客户端字符集(NLS_LANGUAGE),但是因为客户端是非安装版自己拷过去的,而注册表里的客户端是原64位客户端,所以修改注册表起不到效果,于是想到配置环境变量,
3、新建环境变量:NLS_LANG,值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,
4、编辑或新建环境变更:ORACLE_HOME,路径指于自己安装的客户端路径C:\Oracle\instantclient_11_2
至此,问题解决。
经上网查询,发现是oracel客户端的问题,plsql支持不了64位的oracle客户端,具体解决方法如下:
1、下载32的ORACEL客户端,并拷到服务器上,路径:C:\Oracle\instantclient_11_2
2、PLSQL设置客户端路径,tools->perferences->Connection ,找到Oracle Home路径设置成:C:\Oracle\instantclient_11_2;
OCI library设置成:C:\Oracle\instantclient_11_2\oci.dll
终于可以正常用PLSQL正常连接上数据库,但随后又发现一个问题,查询出来的中文是乱码,这个应该不用想就知道是数据库的字符集和客户端字符集不一致造成,select userenv('language') from dual;查询数据库字条集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK,按理说可以直接修改注册表的客户端字符集(NLS_LANGUAGE),但是因为客户端是非安装版自己拷过去的,而注册表里的客户端是原64位客户端,所以修改注册表起不到效果,于是想到配置环境变量,
3、新建环境变量:NLS_LANG,值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,
4、编辑或新建环境变更:ORACLE_HOME,路径指于自己安装的客户端路径C:\Oracle\instantclient_11_2
至此,问题解决。