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。