- 取得連結
- X
- 以電子郵件傳送
- 其他應用程式
使用 OleDb 連線到 Oracle 資料庫在開啟連線的時候會收到下列錯誤訊息(Provider 使用 MSDAORA.1)
Error while trying to retrieve text for error ORA-01019
處理方式
若使用連線字串如下
Provider=MSDAORA.1;Password=oracle;User ID=system;Data Source={server}
將 OleDbConnection 連線字串的 Provider 由 MSDAORA.1 改成 ORAOLEDB.Oracle
Provider=ORAOLEDB.Oracle;Password=oracle;User ID=system;Data Source={server}
就可以連線到資料庫
如果 Provider 不是 MSDAORA.1 的話 ... 請參考網路上其他解決方式,以節省您的寶貴時間
若安裝的 ODAC 版本為 18 的話,會改收到下列訊息:「ORA-01019: unable to allocate memory in the user side」
文章環境與測試紀錄
測試連線的 powershell 指令碼可以在此取得
connect-oracle-database-use-oledb.ps1
- 作業系統
- Windows Server 2016 Standard (1607) 14393.2370
- Oracle 資料庫
- Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
- ODAC 版本
- ODTwithODAC122011
使用 wnameless/oracle-xe-11g 映像檔建立 Oracle 11g XE 資料庫
ODAC 目前最新版本為 ODTwithODAC183
請確認上述環境是否相符,本文章說明的解決方式無法保證一定能夠解決您的問題
備註
在此環境中若重新開機之後第一次使用 MSDAORA.1 的 Provider 連線到資料庫的話, 還是會收到 ORA-01019 的錯誤訊息。且之後使用 Provider=ORAOLEDB.Oracle 也會有問題,請重開機之後第一次連線使用 Provider=ORAOLEDB.Oracle 就可以解決此問題
修正 Provider 後僅代表可正確連線到 Oracle 資料庫,可連線到資料庫後請確認是否會有其他的問題:查詢、參數、資料型態 ... etc
留言
張貼留言