Oracle存儲的字段長度是有限制的,常見的varchar2的保存長度最大爲4000,對一些業務字段值可能超過4000的情況,可以使用clob類型進行存儲,但是如果直接將大字符串保存到clob的列中,會提示錯誤:“ORA-01461: 只有在將值插入數據類型爲 LONG 的列時,纔可以綁定一個 LONG 值”。
1.Java下插入:變量參數必須用#,使用javaType=java.lang.String,jdbcType=CLOB
<!-- 插入詳情信息 -->
<insert id="saveInvoicInfoData" parameterClass="InvoicInfoEntity">
insert into dm_invoice_info(typeid,time,textstr,name,userid)
values(#typeId#,sysdate,#textStr,javaType=java.lang.String,jdbcType=CLOB#,#name#,#userId#)
</insert>
2.C#下插入:變量參數必須用#,使用dbType=clob
<!-- 插入詳情信息 -->
<insert id="saveInvoicInfoData" parameterClass="InvoicInfoEntity">
insert into dm_invoice_info(typeid,time,textstr,name,userid)
values(#typeId#,sysdate,#textStr,dbType=CLOB#,#name#,#userId#)
</insert>
通過在ibatis裏這樣的配置,數據庫插入時會自動轉成clob