[Oracle] For Loop insert 시키기, 리턴값

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 변수에 담아서 그만큼 포문을 돌리면서 그 값을 인서트문에서 사용할 수 있다.