Oracle Clob 긴문자열 MERGE 할때 java.sql.SQLRecoverableException: IO Error: Connection reset 발생할때



짧은 문자열은 말짱하게 잘되는데 긴문자열 입력할때 뜬금없이  java.sql.SQLRecoverableException 이 발생했다.


구글 찾아보니 random 어쩌고 하던데 그거 따라 해도 계속 에러났다.


결론는 MERGE 구문을 안쓰는 것이다 -.-


계속 찾아보면 방법이 나올것 같기도 하지만 경험상 몇번 검색해서 잘 안되면 방법이 없는 경우가 많아서 그냥 포기하기로...


Mybatis 의 choose - when - otherwise 를 요런식으로 써서 최대한 MERGE 랑 비슷하게 변경하기로 했다. 쫌 많이 불편하지만 에러가 나는것을 어떻게 하나.


    <insert id="save">
        <selectKey keyProperty="seq" resultType="Integer" order="AFTER">
            <choose>
                <when test="seq==null">
                    SELECT S_SEQ.CURRVAL FROM DUAL
                </when>
                <otherwise>
                    SELECT ${seq} FROM DUAL
                </otherwise>
            </choose>
        </selectKey>
        
        <choose>
            <when test="seq==null">
                INSERT INTO TB_TBL (
                          SEQ
                        , COL1
                        , COL2
                ) VALUES (
                      S_SEQ.NEXTVAL
                    , #{col1}
                    , #{col2}
                )
            </when>
            <otherwise>
                UPDATE TB_TBL SET
                      COL1= #{col1}
                    , COL2= #{col2}
                WHERE SEQ = #{seq}
            </otherwise>
        </choose>
    </insert>



트랙백 0 댓글 0개가 달렸습니다.
prev 1 2 3 4 ··· 218 next