程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle必須死之奇怪的ORA-06502錯誤

Oracle必須死之奇怪的ORA-06502錯誤

編輯:Oracle教程

  作為熟練.Net碼農以及非熟練Oracle用戶很多時候Oracle總給我一種這貨就是存心惡心我們的感覺。

  雖然不得不承認Oracle是個很(an)好(gui)的產品,但是總有那麼好幾下被惡心到了。比如說屎一樣的驅動,還比如說今天遇到的奇怪錯誤。

  事情是這樣子的:當在數據庫中增加了新的資料後,系統中執行如下腳本時總是報ORA-06502:

 getmaterialinfo()  dual

  說明下,getmaterialinfo是個返回varchar2的function。好吧,看起來是function裡面變量的大小有問題,果斷調試之。

  不過當執行下列調試語句時,奇跡發生了:

(( ;

  是的,什麼都沒有發生!!!!就這麼正常結束了!!!!!一個奇跡由於什麼都沒有發生而發生了,這不是個奇跡又能是什麼?

  好吧,神神叨叨的就跳過吧。還是簡單說下結論:

  返回的字符串長度超過4000,而默認緩沖區大小是4000,於是Oracle果斷報了個錯(不理解為什麼返回類型設置了是varchar2(5000)了還需要糾結返回長度……求解釋?),拋出個看錯誤輸出的描述完全猜不到的錯誤來。

  參考解決方法 http://stackoverflow.com/questions/3790379/how-to-query-a-clob-column-in-oracle,簡單說就是當作CLOB來處理就好了。

  最後說一句:Oracle必須死

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved