Archive for August, 2014

【转载】64位win7 plsql连接oracle找不到oci.dll及乱码

August 30th, 2014

转自:http://blog.csdn.net/tkts/article/details/8757093

连Oracle数据库Could not load “……\bin\oci.dll”
这个问题产生的原因是plsql对64位oracle客户端支持的不好, 在查找oci.dll时出错, 手动指定个可用的oci.dll即可。
1、下载Oracle InstantClient(下载地址:http://download.csdn.net/detail/tkts/5217879),我的数据库安装的是11.2.0.1.0,所以下载的InstantClient也是11.2.0.1.0版本的。将下载的文件解压到oracle的安装目录E:\oracle\product中,并将该目录加入到系统的环境变量path中。

2、打开plsql,取消登录,在程序的首选项中找到connection设置,设置ORACLE_HOME和OCI_LIBRARY,ORACLE_HOME设置为E:\oracle\product\instantclient_11_2,OCI_LIBRARY设置为instantclient目录下的oci.dll文件。关闭plsql。

3、在环境变量中增加一项:TNS_ADMIN=E:\oracle\product\11.2.0\client_2\network\admin

4、重新打开PLSQL,能在Database中显示之前配置的Oracle服务名,则可以正常使用plsql。

乱码解决办法:

在plsqldev.exe同级目录新建start.bat, 添加如下内容:

[plain] view plaincopy
rem 解决64位下plsql乱码问题
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
start plsqldev.exe

启动此批处理文件即可。

另外批处理中start和call的一点区别:

start启动完程序后控制台窗口退出, call调用完程序后控制台窗口不退出。