最近做了一個項目,通過VC odbc訪問oracle數據庫,在我電腦上可以正常運行,在其他電腦上運行不了,原因是沒有oracle odbc驅動,無法配置oracle數據源。網上的博文大都是安裝oracle客戶端來解決的。我想就是一個小程序,沒必要安裝客戶端吧,參照網上博文並訪問了oracle網址,於是有了這篇文章。
1、下載odbc驅動
需要下載兩個東西
instantclient-basiclite-nt-12.1.0.1.0.zip
instantclient-odbc-nt-12.1.0.1.0.zip
網址:http://www.oracle.com/technetwork/cn/topics/winsoft-095945-zhs.html
由於時間推移,版本號會更新,網址也會變化。所以大家可以百度 oracle instantclient basiclite 關鍵詞,然後再搜索結果中找見oracle官方網站,進行下載。下載時需要同意協議並是oracle注冊用戶,用戶注冊是免費的。
2、解壓縮這兩個文件到同一個文件夾
a、分別解壓縮這兩個文件
b、解壓縮後兩個文件夾裡面都有instantclient_12_1目錄,將odbc的instantclient_12_1目錄下的內容拷貝到basicclient下的instantclient_12_1裡面
c、為了使目錄整齊簡介,將basicclient下的instantclient_12_1目錄拷貝到D:\Program Files\instantclient_12_1
3、將oracle數據庫所在電腦上的NETWORK目錄拷貝到instantclient_12_1目錄下,我oracle服務器所在電腦的network在D:\oraclexe\app\oracle\product\11.2.0\server這個位置。
4、修改NETWORK\ADMIN\tnsnames.ora文件,將主機名換成IP地址。下面例子當中10.17.176.138以前是oracle數據庫所在電腦上的主機名。主機名可能無法正確連接,所以換成IP地址。
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.17.176.138)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
5、添加環境變量TNS_ADMIN,變量值指向ADMIN目錄,我的配置是D:\Program Files\instantclient_12_1\NETWORK\ADMIN
6、雙擊instantclient_12_1目錄下的odbc_install.exe完成安裝。注:安裝時出現DOC框,並一閃而過,你可能無法判斷是不是正確安裝。其實你可以cmd進入instantclient_12_1目錄,並.\odbc_install.exe手動安裝。
8、配置數據源並測試
為了不影響測試,首先將oracle數據庫所在電腦的防火牆關閉,或允許例外TCP 1521端口。配置客戶端電腦,控制面板->數據源->用戶DSN->添加中選擇Oracle in instantclient_12_1,TNS Service Name中選擇數據庫名,我的名字是XE,點Test Connection,如果提示成功就OK了。
9、防止亂碼
在安裝數據庫的電腦上(我的oracle是安裝在window上的),查看HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_XXX下的NLS_LANG值,其中XXX是。。。,我也說不清楚,應該是數據庫名吧。
在客戶端電腦上增加環境變量NLS_LANG,其值是在上面得到的NLS_LANG值。我服務器的NLS_LANG是SIMPLIFIED CHINESE_CHINA.ZHS16GBK