java.sql.SQLException: 數(shù)據(jù)大小超出此類型的最大值的問題

轉(zhuǎn)【原文

數(shù)據(jù)庫:Oracle?9i

數(shù)據(jù)庫字段類型:varchar2(4000)

輸入漢字:大于600字(左右)

問題1:當遇到“java.sql.SQLException:數(shù)據(jù)大小超出此類型的最大值”時...

解決辦法:這是jdbc驅(qū)動的問題,更新一下Oracle的class12.jar驅(qū)動就可以解決(可以用oracle10j)。

問題2:當遇到“ORA-01461:?僅可以為插入?LONG?列的?LONG?值賦值”時...

原因:

???我的數(shù)據(jù)庫字符集應該是UTF-8的,對于UTF-8或歐洲的某些字符集,oracle在存儲時,對于一個字符需要2個或3個字節(jié)的存儲空間,雖然表定義中為varchar2(4000),但是其實該字段的data_length為其2倍或3倍長。這種情況下oracle會把data_length長度超過4000的當做LONG型處理,你的表中有兩個這樣的字段,插入數(shù)據(jù)時相當于同時操作2個LONG字段,所以報錯。

解決辦法:建議減小字段長度或拆分。實在需要的,可以轉(zhuǎn)而采用CLOB字段類型。

還可以把實例的頁大小 變大,一般默認是8K, 可以增加到16K,32K。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時,會觸發(fā)此異常。 O...
    我想起個好名字閱讀 5,957評論 0 9
  • ORACLE自學教程 --create tabletestone ( id number, --序號usernam...
    落葉寂聊閱讀 1,241評論 0 0
  • [強]很激勵的一段話: [強]不走出去,家就是你的世界。走出去 世界就是你的家! [強]如果你不花...
    黎均鋌閱讀 236評論 0 0
  • 有個段子這么玩的,0歲閃亮登場,10歲茁壯成長, 20歲為情徬徨,30歲拼命打闖,40歲基本定向,50歲回頭望望,...
    為之瘋狂點閱讀 173評論 0 0
  • 第三章 死人了 為了防止這人在她處理小蛇的時候突然猝死,晏沙點了他的穴道,暫時的幫他止了血。 她把蛇壓在地上,用...
    千秋菌閱讀 365評論 0 0

友情鏈接更多精彩內(nèi)容