Mybatis 아니고, 골동품인 Ibatis 입니다.
생각지도 못한 에러들이 나와서 (ora-00933 등..) 삽질을 했네요. (시간 아깝 ㅠ.ㅡ)
<insert id="BatchDAO.insertMemberRest" parameterClass="java.util.HashMap">
INSERT ALL /* BatchDAO.insertMemberRest */
<iterate property="mberList" conjunction=" ">
INTO COMTNGNRLMBERREST
(
MBER_ID,
PASSWORD
)
VALUES
(
#mberList[].MBER_ID#,
#mberList[].PASSWORD#
)
</iterate>
SELECT * FROM DUAL
</insert>
- 그런데 하다 보니 이것도 조심해야 할 것 같다는 생각이 들었다.
mariadb 같은 것들은 prepared statement 파라미터 갯수제한이 거의 무제한인 것에 반해,
오라클은 약 1000 개 정도 제한이 있기 때문에 레코드가 많을 경우 오류가 발생할 수 있기 때문이다.
insert all 사용시 주의사항
- 쿼리 내에서 sequence.next_val 을 사용할 수 없다. (2회차 루프부터 계속 동일한 값을 리턴하는 듯)