终于搞定PlSQL不能连接本地Oracle的问题了

之前Oracle一直用得少,PLSQL连接本地的Oracle一直也不行。

今天终于搞定了,需要关注的几点:

1. PLSQL只能使用32位的OracleClient,所以必须先从网上下载或复制 OraclieClientx86的版本;
2. PLSQL的首选项中Connection/OracleHome指向解压的OracleClient目录,末尾无需”\”;(带“\”是否不行不确定);
3. PLSQL的首选项中Connection/OCI Library指向解压的OracleClient目录下的oci.dll,必须带上oci.dll;
4. 在OracleClient目录下建立OracleClient\NETWORK\ADMIN目录,并在这个目录下建立tnsnames.ora文件(内容略);
5. 如果提示找不到MSVCR100.dll,则需要安装Microsoft VC++2010 Redistribution x86版。

关键是2,3:)尤其是3!之前的配置我都配成和2一样,或者其它也只是指向了一个目录而不是指向某一个文件。

Oracle Client 11客户端下载地址(请选择Oracle Client 32位版本 for 合适的操作系统)
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

Microsoft VC++2010 Redistribution x86下载地址:
https://www.microsoft.com/en-us/download/details.aspx?id=5555

对了,感谢这篇文章提供的解决方案:
http://blog.csdn.net/chiclewu/article/details/14646687

这是利用PLSQL的配置可指定来具体目录和文件来确定的,还不能解决IIS等其它应用不能连接本地Oracle的问题?

几个关注点(以下内容来自网络,没有确认,可能存在问题):
1. 设置Oracle_Home环境变量;可以不设置TNS_ADMIN,自动使用Oracle_Home/NETWORK/ADMIN目录;
2. PATH中必须添加这个环境变量指向的目录;如果不加.NET程序(或其它程序)无法连接,但PLSQL可行;
3.

网上找到的,Oracle客户端必须的文件列表:

  • network\admin\tnsnames.ora (自己新建)
  • oci.dll
  • ocijdbc11.dll
  • ociw32.dll
  • ojdbc5.jar
  • ojdbc6.jar
  • oraocci11.dll
  • oraocieill.dll
  • orasql11.dll

二、64位机器PL/SQL连接问题
  1. 确认PL/SQL安装位置在不要带有括号, 默认安装时是安装在C:\Program Files (x86), 把括号去掉
  2. PL/SQL developer是32位的,使用32位oci.dll。如果安装的是32位的客户端,则不用设置了。安装64位oracle客户端时oci.dll是64位的,所以需要在PL/SQL中指定oci的位置,以非登录状态下进入PL/SQL developer(登录时不输入用户名和密码,直接点取消),进入首选项,在connection中设置OCI Library.
  32位的oci.dll可以去官网下载Oracle InstantClient或者从其它安装32位客户端的机器上复制。
三、64位机器VS自带的IIS无法连接Oracle数据库
  因为VS自带的IIS安装在C:\Program Files (x86)下面, 另外这个IIS是32位的, 所以需要把它copy出来,放到不带括号的目录中
  或者安装VS时,修改安装位置,不要安装到带括号的目录
  位置: C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0
  在运行的时候新建立一个bat批处理文件,启动的时候指定端口和物理文件目录就可以了

Continue Reading