最近项目使用Oracle11g,以前一直是用Mysql比较多,客户端也比较多用起来也很方便,于是从网上下了个Pl/Sql,可能是我太笨,搞了半天就是连接不上,醉了。没办法,又下载了个Navicat for Oracle,因为我的Oracle版本是11g,所以我下载的客户端版本是10.0.7,如下图:
安装好之后填写相关的信息建立数据库连接,如下图:
这个时候应该毫无意外的.............................................................会报如下错误:
“Instant Client packag is required for basic and TNS connection ”
这个错误大概的意思是需要你指定OCI(Oracle Call Interface)库文件(oci.dll)和sqlplus.exe ,这两个文件在哪里找呢?从Oracle下载:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
需要注意的是版本要和你的库匹配,安装好之后里面应该有oci.dll和sqlplus.exe文件,我暗转的是instantclient11.2.0.4.0,但是不知为什么我的安装目录里并没有sqlplus.exe,可能是版本的原因,于是我从本地安装的Oracle里巴拉了个sqlplus.exe放进去了。
然后配置到Navicat里面去,如下图:
现在应该就可以正常登陆了。
------------------------------------------------------------------学究分隔线---------------------------------------------------------------------------
1、那么为什么Navicat需要配置oci.dll?
2、为什么需要配置sqlplus.exe?
首先回答第一个问题:
要回答这个问题首先要回答oci.dll这个文件是啥,那么首先我们就需要知道dll文件是啥,dll(Dynamic Link Library)从字面上来说就是widows的动态链接库文件,又称为应用程序扩展,参考百科:
那么现在我们知道dll文件是什么了,可以知道oci.dll文件是Oracle这个 应用程序的一部分,可以单独发布而已,并没有什么神秘的地方,这里其实问题变为回答oci是什么就行了,我们还是百科一下,结果如下:
可以看出OCI就是对Oracle存取的接口,毫无疑问这里Navicat就是通过他来和Oracle交互的,所以这里需要做配置就很好理解了。
接下来我们来回答sqlplus.exe是什么东东,sql*plus就是与Oracle进行交互的客户端工具,借助sql*plus可以查看、修改数据库记录,在sql*pluse中可以运行sql*plus命令与sql语句。
现在我们也清楚sqlplus.exe是个什么组件了,也应该明白为什么Navicat为什么需要sqlplus组件了。
参考自:http://wiki.navicat.com/wiki/index.php/Instant_client_required