Database/Oracle, MyBatis
[Oracle] For Loop insert 시키기, 리턴값
조커린
2021. 7. 10. 11:15
인서트 성공 후 리턴이 없어서 -1이 뜬다.. 어차피 에러가 나면 익셉션이 뜨기 떄문에 걱정은 안하지만
흐음 🤔
<insert id="insertFeed" parameterType="FeedDto">
BEGIN
FOR DATA_ROW IN (
SELECT STUDY_GROUP_ID
FROM STUDY_GROUP_MEMBER
WHERE MEMBER_EMAIL = #{memberemail}
) LOOP
INSERT INTO FEED (
FEED_ID,
FEED_CONTENT,
STUDY_GROUP_ID,
MEMBER_EMAIL,
CREATED_AT
)
VALUES
(
FEED_SEQ.NEXTVAL,
#{feedcontent},
DATA_ROW.STUDY_GROUP_ID ,
#{memberemail},
SYSDATE
)<![CDATA[;]]>
END LOOP<![CDATA[;]]>
END<![CDATA[;]]>
</insert>
서브쿼리에서 나온 값들을 DATA_ROW 변수에 담아서 그만큼 포문을 돌리면서 그 값을 인서트문에서 사용할 수 있다.