换电脑后pl/sql连接oracle数据库总是提示不能初始化oci.dll,已经下过32位的Oracle client
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了换电脑后pl/sql连接oracle数据库总是提示不能初始化oci.dll,已经下过32位的Oracle client相关的知识,希望对你有一定的参考价值。
将msvcp71.dll、msvcr71.dll两个文件复制到C:\Windows\System32(32位操作系统)或者:\Windows\sysWOW64 (64 位操作系统)中,然后按【win+R】,打开【运行】,输入“CMD”,确定,输入【regsvr32 /s MSVCR71.dll】,然后【回车】即可;解决问题:1、在配置oci.dll之后,pl/sql登录界面没有显示“连接为:Normal”,初始化失败;2、plsql登录时,报msvcp71.dll丢失; 参考技术A tools-preferences-connection 标签页中
oracle_home 和 oci library 重新设置一下试试
配置PL/SQL Developer连接Oracle数据库
准备:
- PL/SQL Developer:我用的是plsqldev1005(32位)
- win32_11gR2_client:记住一定是32位的,因为PL/SQL Developer只认32位的
安装成功后,需要配置环境变量:
TNS_ADMIN环境变量,类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1\\network\\admin。这个变量实际上是PL/SQL Developer寻找tnsnames.ora的依据。有了这个环境变量,PL/SQL Developer启动是会自动发现连接配置。
NLS_LANG环境变量,值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。这个值要与oracle服务器配置的一致,oracle服务器默认是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
Path环境变量,将Oracle client的主目录。类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1,进入path末尾。
1. 配置PL/SQL Developer
启动时,登录选择取消,进入主界面。
选择菜单:工具/首选项/连接,见下面界面。
主要设置:Oracle 主目录名、OCI库
Oracle 主目录名:就是安装的Oracle client的主目录。类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1,我这里是我安装客户端时自定义目录
OCI库:Oracle Client的主目录下ock.dll文件。类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1\\oci.dll
这里,有个问题,就是你明明设置好了,但下次启动,发现这两个配置没了。
我不明白的是,Oracle Client安装成功后,两个配置为何不会自动发现。毕竟不手动填写是自动发现。
需要配置三个环境变量,如果已配置过,则不用配置:
TNS_ADMIN环境变量,类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1\\network\\admin。这个变量实际上是PL/SQL Developer寻找tnsnames.ora的依据。有了这个环境变量,PL/SQL Developer启动是会自动发现连接配置。
NLS_LANG环境变量,值为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。这个值要与oracle服务器配置的一致,oracle服务器默认是:SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
Path环境变量,将Oracle client的主目录。类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1,进入path末尾。
还需注意:
Oracle Client安装成功后,注册表里的值。
HKEY_LOCAL_MACHINE\\SOFTWARE\\ORACLE\\KEY_OraClient11g_home1,下ORACLE_HOME,值为:E:\\instantclient_11_2\\。这是我的自定义配额制连接Oracle Client路径。如果Oracle Client是默认安装,则类似于:C:\\app\\Lzj\\product\\11.2.0\\client_1。这个就是Oracle Client主目录。可能没有KEY_OraClient11g_home1,我这个是在本机安装了Oracle数据库,如果没有则是只安装了Oracle Client。
2. 编辑tnsnames.ora文件
这里要说明的是tnsnames.ora的位置,网上说的不一致。主要取决于TNS_ADMIN环境变量。我这里配置成:E:\\instantclient_11_2\\network\\admin。
在tnsnames.ora文件所在位置的同一路径下,还需要:listener.ora、sqlnet.ora文件。
我把oracle服务器自动生成的三个文件内容列在下面:
listener.ora
# listener.ora Network Configuration File: E:\\instantclient_11_2\\network\\admin\\listener.ora # Generated by Oracle configuration tools. LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ) ) ADR_BASE_LISTENER = E:\\app
sqlnet.ora
# sqlnet.ora Network Configuration File: E:\\instantclient_11_2\\network\\admin\\sqlnet.ora # Generated by Oracle configuration tools. SQLNET.AUTHENTICATION_SERVICES= (NTS) NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
tnsnames.ora
# tnsnames.ora Network Configuration File: E:\\instantclient_11_2\\network\\admin\\tnsnames.ora # Generated by Oracle configuration tools. LISTENER_ORCL = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
可以在tnsnames.ora文件末尾加入自己的配置
xxxxx = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =xxxxx)(PORT = 1521)) (CONNECT_DATA = (SID = orcl) (SERVER = DEDICATED) ) )
这里有个误区就是如果你的连接名(就是上面第一行的xxxxx),前面不能有任何字符,空格也不行。
否则PL/SQL Developer登录时会报:ORA-12154: TNS: 无法解析指定的连接标识符
以上是关于换电脑后pl/sql连接oracle数据库总是提示不能初始化oci.dll,已经下过32位的Oracle client的主要内容,如果未能解决你的问题,请参考以下文章
PL/SQL developer 连接oracle数据库出问题,报错“initialization error could not load oci.dll”