太长不看版:html
如下是正文:sql
===================== 我是分割线 =====================数据库
Navicat是一套可建立多个链接的数据库管理工具,用以方便管理 MySQL、Oracle、PostgreSQL、SQLite、SQL Server 和/或 MariaDB 等不一样类型的数据库,并支持管理某些云数据库,例如阿里云、腾讯云。Navicat 的功能足以符合专业开发人员的全部需求,可是对数据库服务器初学者来讲又至关容易学习。Navicat 的用户界面 (GUI) 设计良好,让你以安全且简单的方法建立、组织、访问和共享信息。Navicat 提供了三种平台的版本 - Microsoft Windows、macOS 和 Linux。它可让用户链接到本地或远程服务器,并提供一些实用的数据库工具以协助用户管理数据,包括 Navicat Cloud 协同合做、数据建模、数据传输、数据同步、结构同步、导入、导出、备份、还原、报表建立工具和自动运行。编程
Navicat确实很好用,特别是Navicat Premium,它可让你在单一应用程序中同时链接多达六种数据库,可一次快速方便地访问全部数据库。相信你们在链接MySQL、MariaDB、SQL Server、SQLite 和 PostgreSQL时,问题都不大,可是遇到Oracle,总会出现这样那样的问题。windows
今天就和你们分享一下使用Navicat链接Oracle数据库的正确姿式。安全
知其然,更要知其因此然。弄清楚了原理,再解决问题就不是什么难事了。咱们首先须要知道的是,Navicat是怎么链接和管理Oracle的,固然,这里指的是Navicat Premium和Navicat for Oracle两款产品。服务器
Oracle基础不扎实的同窗,请自行补课,我这里就简单说下。oracle
在普通的状况下,用户能够经过SQL和PL/SQL来访问ORACLE数据库中的数据。此外,ORACLE数据库还提供了一组接口,让用户能够经过C语言等来编程访问数据库,OCI就是为了实现高级语言访问数据库而提供的接口。通俗地讲,Navicat就是一个使用OCI来访问ORACLE数据库的一个图形化界面。所以,咱们要想使用Navicat来链接和管理Oracle,首先要正确配置OCI。app
OCI从哪里来?把Oracle在你机器上装一遍,就有了,只是,这么庞大的家伙,装都装了,还要Navicat干吗?不急,Oracle给你们提供了一个叫作Instant Client的东西。地址:http://www.oracle.com/technet...。他是这么描述的:ide
Free, light-weight, and easily installed Oracle Database tools, libraries and SDKs for building and connecting applications to an Oracle Database instance.Oracle Instant Client enables applications to connect to a local or remote Oracle Database for development and production deployment. The Instant Client libraries provide the necessary network connectivity, as well as basic and high end data features, to make full use of Oracle Database. It underlies the Oracle APIs of popular languages and environments including Node.js, Python and PHP, as well as providing access for OCI, OCCI, JDBC, ODBC and ProC applications. Tools included in Instant Client, such as SQLPlus and Oracle Data Pump, provide quick and convenient data access.
看不懂?不要紧!要么谷歌要么度娘。关键是看到“Free, light-weight, and easily”就能够了。二话不说,先下载下来,不过,点Downloads以后就懵了,选哪一个?随便点个window的进去看看,更懵了,还有这么多版本、类型。。。心中一万点伤害,有木有!没事,这就是咱们要说的重点。(感情上面一堆全是废话啊,嗯,没错,都是废话!)
个人navicat是在windows上用的,我就选了windows,其余我没亲测,各位看官本身来吧。
这是个重点。网上处处都是说,navicat只支持32位,云云……我想说,那TM是从前了!Navicat 版本 10 或如下,Navicat 的确是只支持 32位的,但人家如今都出到12了好不。
个人,64-bit。
就一句话,你的navicat是32位你就下32位的Instant Client,你的navicat是64位你就下64位的Instant Client。原理,请自行谷歌。
选好了操做系统和位数,点进去发现,还有各类版本,各类类型,可谓是玲琅满目,眼花缭乱。该如何选择呢?
先确认一下你的Oracle数据库的版本。
SELECT * FROM v$version
能够看到你的Oracle版本,个人是11.2,而后就选择版本一致的Instant Client就能够了。
首先是Instant Client Package - Basic,其实就这一个就能够了。
可是,为了方便命令操做(navicat里叫命令列),咱们须要再弄个sqlplus:Instant Client Package - SQL*Plus。
把上面下载的一个或两个解压(若是是两个,放一块儿就好了),我就直接放C:instantclient_11_2里了。
接下来就是配置navicat。工具->选项->环境。把OCI环境和SQL*Plus配上,从新启动 Navicat,就OK了。
有地方会说(包括官方),须要把解压后的路径(个人是C:instantclient_11_2)加入环境变量。我这里是没有加的。若是你须要在全局是用sqlplus等,就须要加进去,我没有这个需求,因此就没加了,根据你的状况来,反正不是必须的。另外要说的是,若是你加了环境变量,在配置OCI环境时,就能够在下拉时看到这个oci.dll文件。
其实,navicat自己是带了oci的,为何咱们还要费那么大劲去本身弄了。由于用不了呗。为何用不了呢?看了前面就知道了,版本对不上~~~
ORA-XXX:Oracle 那边飞过来的错误,通常是OCI/instantclient版本不对,好比,你直接用了navicat自带的oci环境。
oracle library is not loaded:navicat这边报的错,oci库根本就没加载,通常就是32位64位搞错了