日期:2014-05-16 浏览次数:20426 次
转自:http://apps.hi.baidu.com/share/detail/32733067#
转自:http://www.oschina.net/question/12_3508
说明:图片是转过来的,内容自己有修改
这篇文章本来它的内容是说,用Navicat连接Oracle的时候提示编码有误,原因应该是Mavicat自带的那几个连接服务器的dll版本太低吧,后来研究了OCI,知道Instance Client 10是不支持除英文以外的编码的(如果你下载的是中文版的navicat可能不会有这个问题)。
有几个方法可以用Navicat来连接Oracle,但是不管用什么方法,它都是用到OCI.dll相关的几个文件而已,所以总结下来有下面3个方法(都是围绕OCI):
1、使用Navicat自身自带的dll
这是最简单的方式,不过有可能会出现上面所说的编码的问题,如果有问题,则用下面的方法;
2、使用Oracle client里面的dll
我的是:
F:\oracle\product\10.2.0\client_1\BIN\oci.dll?
除了这个之外应该还有另外2个dll,看下navicat目录下的那几个是什么,再把相应的复制过来
3、使用Oracle的Instance Client里面的dll
去oracle官网下载最新版的OCI:http://www.oracle.com/technetwork/topics/winsoft-085727.html
下载完成后将解压出来的核心的oci11的3个文件替换掉原先的oci10的3个文件即可。(记得做个备份)
替换方法:在Navicat里,工具->选项->Miscellaneous->OCI。为oci.dll重新指定位置,然后重启navicat就OK了。
重启Navicat最后证明Instance Client 11没有字符集问题。
PS:
本机是xp SP3系统,Oracle是10.2,navicat 9.0 Premium English版本。
同时感谢网友gloomsky的案例分享:http://hi.baidu.com/%F2%A9%F1%FC%E4%EB%E4%A7/blog/item/87f00e547468f9113b293570.html