【 Oracle 】【批量插入】 oracle SQL 錯誤: ORA-12899:始終提示字段太大 (已解決)
猜測是因為 插入的順序導致, <!-- createBatch 計劃詳情-->
<insert id="creatBatch" parameterType="java.util.List">
INSERT INTO DUTY_SHCEDULE_DETAIL (ID,DUTY_TURN_PLAN_ID,WORK_DATE,GROUP_ID,DUTY_TURN_ID)
(
<foreach collection="list" item="item" index="index" separator="union all">
SELECT
#{item.id,jdbcType=VARCHAR},
#{item.dutyTurnPlanId,jdbcType=VARCHAR},
#{item.workDate,jdbcType=TIMESTAMP},
#{item.groupId,jdbcType=VARCHAR},
#{item.dutyTurnId,jdbcType=VARCHAR}
FROM dual
</foreach>
)
</insert>
<insert id="creatBatch" parameterType="java.util.List">
INSERT INTO DUTY_SHCEDULE_DETAIL (ID,DUTY_TURN_PLAN_ID,WORK_DATE,GROUP_ID,DUTY_TURN_ID)
(
<foreach collection="list" item="item" index="index" separator="union all">
SELECT
#{item.id,jdbcType=VARCHAR},
#{item.dutyTurnPlanId,jdbcType=VARCHAR},
#{item.workDate,jdbcType=TIMESTAMP},
#{item.groupId,jdbcType=VARCHAR},
#{item.dutyTurnId,jdbcType=VARCHAR}
FROM dual
</foreach>
)
</insert>
解決方法是:
在xml的語句中指定values(順序),標黃部分的順序保持一致!
梅花香自苦寒來
posted on 2017-05-12 17:11 wen.ding 閱讀(797) 評論(0) 編輯 收藏 所屬分類: Exception