轉自: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