본문 바로가기

프로그래밍/MyBatis

[Mybatis - oracle] INSERT 여러개

<insert id="insertSettlement">
  INSERT ALL
  <foreach collection="settlement" item="item" index="index" separator=" ">
    INTO TABLE_A (
    , SEQ
    , settlementNm
    )
    VALUES
    (
    , #{index} /* SIGN_SEQ */
    , #{item.settlementNm} /* SIGN_NAME */
    )
</foreach>
SELECT * FROM DUAL
</insert>

item은 데이터 객체를 의미한다

index는 데이터의 key(순서)를 의미한다

separator는 foreach가 끝난 후 구분자를 의미한다 (그 외에도 close, option 태그 옵션이 있다)

SELECT * FROM DUAL을 쓰지 않으면, 쿼리 오류가 난다. 정확한 이유는 모르겠다