在开发时用到了批量插入数据,之前在mysql库使用过就直接拿来用
<insert id="saveChannelType" parameterType="java.util.List"> insert into EHOME_UC_CHANGES_INFO(policy_no,COL_NAME,COL_VALUE,DATA_STATUS)
<foreach collection="list" item="policy_no" index="index" separator="," > (#{policy_no},'channel_type','','0') </foreach> </insert>values
注:separator="," 使用的是逗号
执行报错:bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00933: SQL 命令未正确结束
后来网上查是因为oracle不识别那种语法,所以调整sql就可以了,调整后的sql如下:
<insert id="saveChannelType" parameterType="java.util.List"> begin <foreach collection="list" item="policy_no" index="index" separator=";" > insert into EHOME_UC_CHANGES_INFO(policy_no,COL_NAME,COL_VALUE,DATA_STATUS) values (#{policy_no},'channel_type','','0') </foreach> ;end;
</insert>
注:separator=";" 使用的是分号