由于 PLSQL Developer 没有64位版本,所以在64位系统上运行该程序连接64位Oracle时就会报错,笔者为这个问题纠结了好几天,后来通过请教Google + 动手实践,终于搞定了这个问题。现在把笔者解决的过程记录下来,分享给遇到同样问题的网友们。
首先到Oracle官网上下载一个32位的客户端(即时客户端instantclient),一定要下载 basic 版本的,不要下载 basiclite 版本的。笔者刚开始下载的是 basiclite 版本的,结果不好使,后来对比才发现, basiclite 比 basic 版本要小很多,估计可能是缺少什么组件吧。
笔者使用的是instantclient-basic-nt-11.2.0.2.0.zip,在这里给出下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html。
首先把下载到的客户端解压缩出来,笔者解压缩到了D:\instantclient目录。(instantclient文件夹名是我自己改的)
然后在 D:\instantclient目录下创建tnsnames.ora文件:
把我的文件内容贴出来,红色加粗的部分请根据实际情况做修改:
接下来设置环境变量。(我的电脑-属性-高级系统设置-环境变量)
变量名:TNS_ADMIN
变量值:D:\instantclient
设置好环境变量后,在 PLSQL Developer 的目录中创建start.bat文件(start.bat文件放在plsqldev.exe同级目录下)。
以下是start.bat的内容:
@echo off
set path=D:\instantclient
set ORACLE_HOME=D:\instantclient
set TNS_ADMIN=D:\instantclient
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
start plsqldev.exe
其中 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK的 ZHS16GBK 是你的数据库编码。
然后启动你的 PLSQL Developer,但是不要登录,直接进入。
然后点击工具→首选项→连接,把“Oracle 主目录名”设置为空,并把 “OCI 库” 设置为instantclient 目录中的 oci.dll 的路径,笔者的路径是D:\instantclient\oci.dll。
然后保存并退出 PLSQL Develoer,然后运行 start.bat。
如果运行不了那么需要重新启动系统再运行start.bat。
这样,plsql就可以正常连接了。下次再启动时直接点击plsqldev.exe或者快捷方式即可。
附上原文链接:http://www.cnblogs.com/chuyuhuashi/archive/2012/03/22/2411481.html,已根据实际情况做了修改。
原文中set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK,但是启动plsql后发现中文是乱码,
我本地bat文件中改成set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK就可以了