代码改变世界

关于PL/SQL Developer与Oracle客户端

2019-02-15 22:20  AlfredZhao  阅读(...)  评论(...编辑  收藏

这是一个很简单的知识点,但这些年遇到过太多初学者反而受其困扰,所以还是决定记录一下。
背景:国内使用Oracle的群体,几乎都会使用PL/SQL Developer这个图形化的工具进行日常数据维护。这个软件需要依赖Oracle客户端,且必须是32位的客户端。有些在windows环境下使用64位Oracle服务端的用户(常见于开发测试环境),会直接再安装一个32位的客户端,便于使用PL/SQL Developer。
如果你在使用PL/SQL Developer连接数据库遇到类似这样的错误提示:

Initialization error
Could not initialize "C:\oracle\product\10.2.0\db_1\bin\oci.dll"
Make sure you have the 32 bits Oracle Client installed.


就很显然你需要安装32位的Oracle客户端。

但由于开发测试环境往往没有专职DBA维护,尤其对于多人共用的这类环境,很多都管理混乱(比如上面有多个服务端、多个客户端),很可能上面就已经有符合你需求的32位客户端,那实际上只需要在 工具 -> 首选项 -> 连接 选择正确的Oracle主目录名,如下:

因为这个简单问题很多初学者没有搞明白,导致一些环境安装配置的异常复杂,例如前后安装了多个版本客户端,甚至有的还是精简版,在遇到问题时增加了不必要的复杂度。
另外注意,Windows平台,后安装的软件,环境变量默认是在最前面,比如说安装了32位客户端之后,又安装了64位服务端或客户端,那么原本可以用的PL/SQL Developer就会用不了,需要按照上面的方法设置正确的Oracle主目录名。有些类似场景,需要手工调整下变量的位置,只要充分理解了这些,此类问题基本都会迎刃而解。