關於vs2008使用oracleclient鏈接oracle數據庫報報錯OCIEnvCreate失敗,返回代碼為-1,但錯誤消息文本不可用
用vs2008鏈接oracle數據庫出現問題,報錯OCIEnvCreate 失敗,返回代碼為 -1,但錯誤消息文本不可用,從網上找了好久方法,有兩種oracle客戶端文件權限,和運行vs2008以管理員身份,這些都試過了沒有用,查了好久還是沒有解決問題,只好換一種方式鏈接oracle數據了。
我使用的是ODAC方式鏈接oracle數據庫,這樣就不需要安裝oracle客戶端了,我的操作步驟如下:
1.從[url=http://download.oracle.com/otn/other/ole-oo4o/ODTwithODAC1110621.zip?AuthParam=1427792567_926a5eb7e7f7456724673afbdb80c825][/url]下載安裝ODAC安裝文件,因為我需要安裝文件下面的幾個DLL,下載下來的文件為ODTwithODAC1110621.zip 壓縮文件。
2.我們解壓之後裡面有安裝setup.exe.點擊執行,之後彈出一個dos界面,等待幾十秒之後彈出安裝界面。按提示點擊下一步完成安裝。到90%的時候安裝會比較慢。
3.安裝完之後我們在安裝路徑下(我的是E:\app\Administrator)可以找到oci.dll,ociw32.dll,orannzentr11,orannzmcs11,orannzsbb11,oraocci11,oraociei11,orasql11.dll,orasqlplusic11,sqora32,sqresja,就這麼多DLL,最關鍵的一個DLL是在(我的是E:\app\Administrator\odp.net\bin)路徑下裡面有兩個文件夾,你對應自己的.Net Framework 選擇Oracle.DataAccess.dll。
4.將上面提到的DLL拷貝到DeBug的路徑下面,我的asp.net程序,我拷貝到了bin目錄下面
5.重新生成解決方案,寫段使用Oracle.DataAccess.Client方式鏈接Oracle的方式試一下,是否可以鏈接成功。
6.我提供下我的例子
測試例子
public void connByOracleClient()
{
string connString = @"user id=XXXXpassword=XXXX;Data Source=(DESCRIPTION ="
+ "(ADDRESS = (PROTOCOL = TCP)(HOST = XX.xx.xx.xx)(PORT = 1521))"
+ " (CONNECT_DATA ="
+ " (SERVER = DEDICATED)"
+ " (SERVICE_NAME = xx)"
+ "))";
OracleConnection conn = new OracleConnection(connString);
conn.Open();
string sql = "select * from xx";
OracleCommand comm = new OracleCommand(sql, conn);
OracleDataReader rdr = comm.ExecuteReader();
while (rdr.Read())
{
string s = rdr.GetString(5);
}
運行成功沒有任何錯誤和異常。