반응형
에러메시지
### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA-01747: 열명을 올바르게 지정해 주십시오
현상/원인
<insert id="insertChildContents" parameterType="childVO">
/*St163.insertChildContents*/
MERGE INTO T_CHILD
USING DUAL
ON (
CHILD_NO = #{childNo}
)
WHEN MATCHED THEN
UPDATE SET
, P_SEQ = #{seq}
, USE_YN = #{useYn}
WHEN NOT MATCHED THEN
INTO (
SEQ
, P_SEQ
, CHILD_NO
, USE_YN
) VALUES (
SEQ_T_CHILD.NEXTVAL
, #{seq}
, #{childNo}
, #{useYn}
)
</insert>
merge into로 데이터를 insert update 하는 쿼리를 작성했습니다.
원인은 문법오류입니다.
딱히 이상 할 것이 없는데 자세히 보면 update 쪽에 p_seq 앞에 첫줄부터 콤마가 있죠?
다른 변수를 넣었다가 삭데 할 때 같이 주의깊게 볼 필요가 있습니다.
해결
<insert id="insertChildContents" parameterType="childVO">
/*St163.insertChildContents*/
MERGE INTO T_CHILD
USING DUAL
ON (
CHILD_NO = #{childNo}
)
WHEN MATCHED THEN
UPDATE SET
P_SEQ = #{seq} ------------에러원인 콤마제거
, USE_YN = #{useYn}
WHEN NOT MATCHED THEN
INTO (
SEQ
, P_SEQ
, CHILD_NO
, USE_YN
) VALUES (
SEQ_T_CHILD.NEXTVAL
, #{seq}
, #{childNo}
, #{useYn}
)
</insert>
해당 첫 줄 콤마를 제거하면 잘 실행됩니다.
반응형
댓글