環境:
數據庫:Oracle 9i
數據庫字段類型:varchar2(4000)
輸入漢字:大于1000字
問題1:當遇到“java.sql.SQLException:數據大小超出此類型的最大值”時...
解決辦法:這是jdbc驅動的問題,更新一下Oracle的class12.jar驅動就可以解決。
問題2:當遇到“ORA-01461: 僅可以為插入 LONG 列的 LONG 值賦值”時...
原因:
?? 我的數據庫字符集應該是UTF-8的,對于UTF-8或歐洲的某些字符集,oracle在存儲時,對于一個字符需要2個或3個字節的存儲空間,雖然表定義中為varchar2(4000),但是其實該字段的data_length為其2倍或3倍長。這種情況下oracle會把data_length長度超過4000的當做LONG型處理,你的表中有兩個這樣的字段,插入數據時相當于同時操作2個LONG字段,所以報錯。
解決辦法:建議減小字段長度或拆分。實在需要的,可以轉而采用CLOB字段類型。
??????????????????????????????????????????????????????????????????????????? THE END
posted on 2007-08-09 13:50
小立飛刀 閱讀(6983)
評論(1) 編輯 收藏 所屬分類:
Database