Navicat premium是一款数据库管理工具,是一个可多重连线资料库的管理工具,它可以让你以单一程式同时连线到 MySQL、SQLite、Oracle及PostgreSQL 资料库,让管理不同类型的资料库更加的方便。
一、需要准备的软件
1.Navicat premium 32位
官方下载地址:http://www.navicat.com.cn/products/navicat-premium
2.Instant Client12.1.0.2.0 32位
Instant Client 是Oracle 公司推出的精简版客户端。
32位下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html
注意:不管你的Navicat是32位的还是64位的,你的Instant Client都要下载32位的,因为Navicat只支持32位的客户端。
二、安装配置
1.解压Instant Client到
F:gomeinstantclient_12_1
2.配置Navicat premium的oci
Navicat Premium默认自带了instantclient_10_2,但是其是base lite版本的(Basic Lite: Basic 的精简版本,其中仅带有英文错误消息和 Unicode、ASCII 以及西欧字符集支持),不支持中文字符集,而本文中的服务器端oracle恰好是中文字符集,instantclient_10_2不适合,因此需要下载base版本。
将Navicat Premium中的OCI library设置为F:/gome/instantclient_12_1/oci.dll,然后重启生效。
三、连接Oracle
1.打开Navicat Premium,点击连接选择Oracle
2.填写连接信息
Navicat Premium中oracle有两种连接类型:Basic和TNS。
在 Basic 模式中,通过 Oracle Call Interface (OCI) 连接 Oracle。OCI 是一个应用程序界面,让程序开发人员使用第三代语言原有进程或函数呼叫来访问 Oracle 数据库及控制全部 SQL 语句运行的阶段。OCI 是一个标准数据库访问的库和动态链接库形式检索函数。Basic模式需要输入主机名或IP地址、端口及服务名或SID。
在 TNS 模式中,需要使用在 tnsnames.ora 文件中的别名项目通过 Oracle Call Interface (OCI) 连接 Oracle 服务器。TNS模式只需要选择网络服务名,但是之前需要新建tnsnames.ora,并配置数据库服务。
推荐使用更简洁Basic模式,可以省去复杂的tnsnames配置。本文采用的就是Basic模式。
在下图“新建连接”界面,输入连接名、连接类型、主机名或IP地址、端口、服务名或SID、用户名及密码,点击确定即可连接数据库。
点击连接测试,提示测试成功,证明连接成功!
三、问题总结
上面介绍的是连接的顺利的情况下的连接步骤,在连接的过程中也遇到一些问题,下面就把这些问题总结一下:
1.问题1:ORA-12737:Instant Client Light:unsupported server character set ZHS16GBK
该问题是直接使用Navicat自带的instantclient_10_2造成的。自带的采用的是Basic Lite版本的instantclient。
Basic Lite:Basic的精简版本,其中仅带有英文错误消息和 Unicode、ASCII以及西欧字符集支持
Basic:运行OCI、OCCI和JDBC-OCI 应用程序所需的所有文件,包含中文字符集。解决办法就是换个Basic版本的instantclient。
2.问题2:only compatible with oci vers and higherion 8.1 and higher
与本地oracle连接的时候,一般没问题,sqlplus和oci都是本地oracle自带的,(设置: 工具->选项->oci)分别为:
oci:D:apppcmanproduct11.2.0dbhome_1BINoci.dll
Sqlplus: D:apppcmanproduct11.2.0dbhome_1BINsqlplus.exe。
如果是与远程服务器连接就要确保本地和远程的oracle版本一致,是11g的都要用11g,以防止sqlplus和oci不匹配而出问题,另外,navicat好像只能用32位的oci,可以从这里下(http://www.oracle.com/technetwork/topics/winsoft-085727.html。)
3.问题3:Cannot load OCI DLL,193
这是由于Navicat的版本和Navicat Premium不一致造成的,因为Navicat Premium只支持32位的Instant Client,检查一下你下载的的是不是32位的Instant Client。