在windows x64环境下使用oracle instant client配置pl/sql developer

在x64的环境下,即便安装了oracle数据库,但是如果使用pl/sql developer,那么是使用不了的。原因很简单,pl/sql 是32位的,而所安装的oracle为64位的。当然,如果再安装一个32位的客户端工具,那么就可以使用了。但是,仅仅为使用pl/sql而安装一个600M左右的oracle客户端,这个代价是不是太大了。

而实际上,pl/sql工具只需要依赖一个叫oci.dll的动态链接库就可以了。然后就是基于tnsname.ora的配置文件,以让pl/sql知道需要以何种方式访问数据库信息,即可以了。那么,哪些东西可以满足这两个条件呢,那就是oracle instant client。

网上的大多数的配置都需要建立developer.bat文件,或者修改环境变量,或者修改注册表。这些修改都对现有的使用方式以及会有潜在的问题,比如本机已有oracle数据库的情况。本文仅从pl/sql本身所支持的信息出发,不修改文件,环境变量以及注册表信息,采用最常用的惯例配置达到让pl/sql自动发现配置信息的目的。

1    首先下载oracle instant client文件,下载地址为 http://download.oracle.com/otn/nt/instantclient/112010/instantclient-basic-win32-11.2.0.1.0.zip。将其解压在某一个目录,暂称之为 F:\plsql\instantclient_11_2目录。

2    打开pl/sql,在tools->Preference->Connection里,修改配置里面的Oracle Home项,将其修改为我们刚才解压的目录。同时修改下面的OCI Library项,将其修改为解压目录\oci.dll。即可。保存配置

3    从别处或者已安装oracle的安装目录copy一个tnsname.ora文件,将其放在 解压目录\NETWORK\ADMIN目录下即可。

经过以上3个步骤,再重新打开pl/sql,我们就会发现pl/sql已经能够自动地从我们刚copy的tnsname.ora文件中读取数据库配置信息了,输入帐号名/密码,就和平时所使用的情况一样了。
这里需要注意的是,pl/sql读取的不是已安装的数据库的tnsnames.ora,而是我们copy过去的新的tnsnames.ora文件。一个系统中有2个tnsnames.ora是不是很难维护,那么还有办法。如下所示.

如果你的电脑是windows 7,windows 8或者windows 2008,那么恭喜你,你可以使用linux中的link,即软连接。何为软连接,这里不再叙述。我们只需要在新的解压目录下的NETWORK\ADMIN目录下,创建一个名为tnsnames.ora的软连接,并连接到64位的oracle下的tnsnames.ora文件,就可以了。这样,修改其中1个,都修改了(实际就是一个文件),就不需要再费心维护2个文件了。以下代码即可(请在cmd下运行):

F:\plsql\instantclient_11_2\NETWORK\ADMIN>mklink tnsnames.ora F:\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

这样就创建一个软连接,所有的问题都解决了。

后记:其实道理很简单,在pl/sql里面,我们配置的ORACLE_HOME目录,即解压目录。所以,按照默认的惯例,在ORACLE_HOME\NETWORK\ADMIN\tnsnames.ora即是相应的oracle访问信息配置。我们所做的,只不过按照oracle的配置方式将文件放到正确的地方而已。