1.這個例外是指,用戶向資料庫執行插入資料操作時,某條資料的某個欄位值過長,如果是varchar2型別的,當長度超過2000,--4000(最大值)之間的時候,oracle會自動將該欄位值轉為long型的(-_-||有點坑~),然后插入操作失敗,
2.改完資料型別之后還是報這個錯,原因是:
當從dual中取資料時,會將clob物件的欄位轉為Long型,所以mybatis里不能用select XXXX from dual union all的方式,而且mybatis里要這樣寫:jdbcType=CLOB
另外提一下,之前不想在代碼的getter里寫一堆截取字符長度的代碼,就想利用Oracle資料庫的substrb函式,
substrb是在插入的時候進行截取,但這個時候按照1的說法已經把超長欄位的型別改為long型別,所以還是會報錯,
解決辦法:要么是在賦值的時候就截斷好不能超長,要么是把超長欄位的型別改為clob或者blob型別
參考資料:
https://www.cnblogs.com/xiaotiannet/p/3846444.html
https://www.cnblogs.com/xiaoliu66007/p/8384519.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/39227.html
標籤:Oracle
下一篇:Oracle資料庫創建只讀用戶
