使用 instantclient 和 PL/SQL 连接 oracle 远程数据库

PLSQL 连接 Oracle

Windows 装 Oracle 11g ,PLSQL Developer 使用出现以下问题:

1、Database 下拉框为空:

2、强制输入用户名、密码及 Database,登录弹出:

错误内容引用

1
Initialzation error
Could not initialize
"...."
Make sure you have the 32 bits Oracle Client installed.

OracleHomeKey:
OracleHomeDir:...
Found:oci.dll
Using:
...
Loadlibrary(...)
returned 0

解决办法

1、 下载 32 位 Oracle 客户端

下载链接:http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html

下载 Instant Client 程序包就可以了。

下载需要登录,得先在 Oracle 注册账号才能下载!

2、 解压软件

将下载到的 instant client 解压,比如解压到到 D:\instantclient_11_2

3、 设置 PLSQL Developer

在工具 - 首选项,连接,OCI 库输入

D:\instantclient_11_2\oci.dll

4、 建立连接信息

tnsnames.ora,并保存到安装目录:D:\instantclient_11_2

tnsnames.ora 内容如下

1
2
3
4
5
6
7
8
9
SERVICE_NAME=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = host_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SERVICE_NAME)
)
)

需要修改的内容:SERVICE_NAME 为服务名,host_ip 为远程服务器的 ip,若为本地服务器在本地则为 127.0.0.1 或者 localhost;

5、 添加环境变量

添加环境变量系统变量中添加 2 个:第一个是指向 TNS 文件所在目录的,这个目录是你安装的 Oracle 的 TNS 文件所在目录。TNS 文件就是保存了连接信息的文件。

TNS_ADMIN 值: D:\instantclient_11_2\

第二个是指定数据库使用的编码。如果不设置成以下值,那么连接上数据库后,你看到的所有中文的内容将会是乱码,都是一堆问号。

NLS_LANG 值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK

这样就可以远程连接 Oracle 服务器了,也可以解决使用 PL/SQL 远程登陆时下拉列表里没有数据库的问题。