oracle|解決|資料|資料庫|問題 今天,在一台WIN2K SERVER 伺服器上,通過ASP安裝在原生 Oracle9i 資料庫時,發現錯誤,根本無法串連上資料庫。其錯誤描述如下:
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
[Microsoft][ODBC 驅動程式 管理器] 驅動程式的 SQLAllocHandle on SQL_HANDLE_ENV 失敗
或
Microsoft OLE DB Provider for ODBC Drivers 錯誤 '80004005'
由於系統錯誤 5 (Oracle in jxt_user),導致不能載入指定驅動程式
串連方式是通過ODBC,驅動程式套件括 Oracle ODBC Driver 和 Microsoft ODBC Driver for Oracle 。
串連字串如下:
(1)CONNECTIONSTRING ="DSN=TXLTNS;UID=user;PWD=password"
(2)CONNECTIONSTRING ="DRIVER={Oracle in txl_user};UID=user;PWD=password;DBQ=TXLTNS;DBA=W;"
結果,都是無法正常運作。經檢查發現 %ORACLE_HOME% 設定是正確的,也包含到PATH中了。
在 GOOGLE 搜尋簡體中文的資訊,發現一個資訊說法如下:
“這個其實是由於Oracle9i裝在2000的NTFS分區上產生的錯誤。主要是IIS的許可權不足,找不到Oracle9i的檔案導致的錯誤。”
而且他還給出了一堆英文文摘,答題的意思是:%ORACLE_HOME%這個目錄在安裝的時候,是單獨設定了許可權的,預設是Administrator 群組、SYSTEM組和一個名為“Authenticated Users”的組具有許可權。他還說要這樣:
------------------------------------------
v. Click on "Authenticated Users" item in the "Name" list (on Windows XP the "Name" list is called "Group or user names").
vi. Uncheck the "Read and Execute" box in the "Permissions" list (on Windows XP the "Permissions" list is called "Permissions for Authenticated Users"). This box will be under the "Allow" column.
vii. Check the "Read and Execute" box. This is the box you just unchecked.
------------------------------------------
感覺這段英文的說法有點怪,為什麼要取消Authenticated Users組的“讀取和執行”許可權呢,不是說許可權不夠嗎?
繼續在ORACLE 技術網查詢相關資訊,發現這個資訊:
-------------------------------------------
The Microsoft ODBC driver for Oracle is known not to work correctly on a 9.2 Oracle client. You need to use the Oracle ODBC driver if you're using the 9.2 client.
-------------------------------------------
這樣看來,這個錯誤的發生,與ORACLE的安裝配置無關。因為之前測試過使用JAVA通過 JDBC 串連ORACLE是成功的。
於是下載最新的 MDAC2.8 ,安裝完後,重新啟動電腦,再測試原來的ASP程式,發現已經成功串連到ORACLE資料庫。
前面別人說的“許可權”問題,看來在這裡並不適應。呵呵。
附:
MDAC2.8 的下載地址:http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c