Error while trying to retrieve text for error ORA-01019 的解決辦法


這個問題涉及到 64 位的oracle服務, 和32位的客戶端導致的問題。

環境如下: win8.1 + 64位oracle 11.1 做服務器, 客戶端由於采用32位程序,不支持64位的oracle客戶端,所以采用32位的10.2 的 instantclient 包。

問題現象:無法連接oracle服務器,plsql、sqlplus 均連接正常, 程序連接時報錯 Error while trying to retrieve text for error ORA-01019。

Oracle文檔上對這個錯誤的描述為:

ORA-01019: unable to allocate memory in the user
Cause: The user side memory allocator returned error.

Action: Increase the processes heap size or switch to the old set of calls.

 

解決:

導致這個問題的原因似乎是ODBC沒有使用Oracle提供的驅動程序,而是使用了ORACLE_HOME之外系統提供的驅動。顯然不是內存的問題。 所以解決第一步:

1、在環境變量中增加 ORACLE_HOME 指向64位安裝目錄,而不是 instantclient 目錄。我想此步可以讓 windows 使用匹配的文件去驅動

   做了第一步以后,再連接,錯誤提示變成了, 不能分配內存的錯誤。 接着再第二步

2、將 10.2 的 Instantclinet 包換成 11.1 匹配的 32位 instantclient 包

    換了后,連接正常。

 

環境變量中 tns_admin 和 path 都可以指向這 32 位的 instantclient 包位置路徑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM