Oracle 數(shù)據(jù)訪問組件 (ODAC) 全稱:Oracle Data Access Components
背景:
最近項目里面有用到 WCF+Entity Framework+oracle 這個架構(gòu)
用過的朋友應(yīng)該都知道,Entity Framework要通過ODAC的方式來連接Oracle,
于是從oracle下載了一個ODAC64bit版本,結(jié)果VS2010怎么都無法調(diào)用到ODAC這玩意,
于是暫時遠(yuǎn)端到服務(wù)器上來開發(fā)項目,當(dāng)時被這個問題郁悶了好久……
項目結(jié)束后,公司要求切換服務(wù)器,于是就需要在新的服務(wù)器(Window server2008)上搭建環(huán)境,
結(jié)果又悲催的卡在的ODAC的問題上,這次再也沒有其它替代解決方案了,后來跟一個資深同事(以前成功安裝過ODAC)
一起花了兩天時間來研究這個,把舊服務(wù)器上的配置環(huán)境全部在新的服務(wù)器上搭建起來,并一個一個對比
新舊服務(wù)器上ODAC相關(guān)配置差異,后來終于發(fā)現(xiàn)舊服務(wù)器(Window server2008)上ODAC居然
是32bit的,我擦,終于找到原因了,64bit系統(tǒng)安裝32bit版本ODAC后VS2010上的Entity Framework才能通過ODAC正常抓取oracle中的數(shù)據(jù),
真不知道是VS2010坑爹還是Oracle的ODAC坑爹……
最后強(qiáng)調(diào):
64bit系統(tǒng)安裝ODAC一定要安裝32bit版本(即oracle 11g Client 為32bit的),否則會出現(xiàn)ODAC無法使用狀況。
windows7 64位 oracle 64位 odac 64位 如何連接!
在如題的環(huán)境中,要怎么配置才能連接上oracle的庫。楷F(xiàn)在的情況是open連接的時候,就停著不動了。謝謝
------解決方案--------------------
配置服務(wù)器tnsnames,使用SQLPLUS測試連接。
1. ODAC的安裝
服務(wù)器端:0racle10g,11g 都行
客戶端:oracle11g,我下載的是ODAC 11.2 Release 4 and Oracle Developer Tools for Visual Studio (11.2.0.3.0),oracle10g可以安裝,但是里面缺少自定義類型的對應(yīng)對象,且只支持vs2003和vs2005,所以我選擇用的是oracle11g的版本ODAC 11.2 Release 4 and Oracle Developer Tools for Visual Studio (11.2.0.3.0)
2. 環(huán)境變量的設(shè)置
(1)新建ORACLE_HOME:ODAC的安裝目錄(類似~app\Administrator\product\ .1.0\client_1,我這里的安裝目錄是E:\app\ljp\product\11.2.0\client_2)
(2)新建LD_LIBRARY_PATH :%ORACLE_HOME%
(3)新建TNS_ADMIN : %ORACLE_HOME%(這里是監(jiān)聽設(shè)置,應(yīng)該是tnsnames.ora的目錄,我設(shè)置的是E:\oracle\product\10.1.0\db_1\NETWORK\ADMIN,當(dāng)然也可以將配置好的tnsnames.ora文件拷貝到%ORACLE_HOME%目錄下)
(4)在PATH的最前面追加:%ORACLE_HOME%
3.vs2008中建立與oracle的連接
在vs的菜單欄中點擊視圖—>服務(wù)器資源管理器,在服務(wù)器資源管理器面板中選擇數(shù)據(jù)連接,右鍵添加連接
點擊數(shù)據(jù)源的更改按鈕,在彈出的更改數(shù)據(jù)源框中選擇Oracle數(shù)據(jù)庫,數(shù)據(jù)提供程序,選擇Oracle Date Provider for.NET,如圖所示:
在數(shù)據(jù)源名稱的下拉列表框中選擇數(shù)據(jù)源名稱,這個的名稱都是在tnsnames.ora配置好的,輸入用戶名密碼,點擊確定即可建立vs與oracle的連接
最后可以使用這里的工具對oracle數(shù)據(jù)庫進(jìn)行操作