安裝,
以前Oracle使用9i版本,因為公司就使用這個版本開發資料庫.
但是Win2008 不相容只能使用oracle 11G 沒這了,使用11G 吧
但是出現了毛病 自己開發Vs2008程式的時候的使用Oracle.DataAccess.dll
因為我使用的是11G的資料庫,所以開發非常的順利,
底層已經開發完成都已經封裝好了,剩下了一點,因為來的別的重要的任務交給同事,繼續開發!
這時候出現了錯誤了:
csharp代碼
- Oracle.DataAccess.Client.OracleConnection”的類型初始值設定項引發異常
因為他的機子了裝的是Oracle 9i不相容最新的Oracle.DataAccess.dll !
還有發布時機子基本上都是Oracle 9i的資料庫,只用使用ODP.NET 來實現了,
我認為在每次的時候都安裝下ODP.NET 非常的不方便!而且有可能跟以前的程式產生相容性問題
最後決定使用 免安裝版本的自己整合到Dll裡面
下載的是ODAC1110720Xcopy 版本 從裡面提取了
- oci.dll
- ociw32.dll
- Oracle.DataAccess.dll
- orannzsbb11.dll
- oraocci11.dll
- oraociei11.dll
- OraOps11w.dll
7個檔案 放在一個DLL檔案夾了 裡面Web程式使用的時候
直接引用 Oracle.DataAccess.dll 但必須剩下的6個檔案都拷貝到BIn檔案夾裡面 就直接能使用了
但要注意的是 你使用ODP.NET 就不能使用 tnsnames.ora 來引用
必須手寫串連 格式如下:
xml代碼
- Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));
- User Id=myUsername;Password=myPassword;
還有注意當這些都設定完成後 有可能出現這個錯誤!
csharp代碼
- ORA-12505: TNS:listener does not currently know of SID given in connect descriptor
這時候你必須修改註冊表才成
修改如下: 開啟註冊表
HKEY_LOCAL_MACHINE\Software\Oracle\NLS_LANG
查看 NLS_LANG 的值 是否是NA
如果是 刪除 NLS_LANG 直接重啟電腦就好了
Ok
下載 ODP.NET