Mybatis : selectKey - 'ORA-22816: unsupported feature with RETURNING clause' error - Spring



1. 해당 테이블에 값이 입력이 되면, Trigger 에서 PK값을 생성하여 입력.(RETURNING)
2. DB에서 직접 INSERT하면 문제 없지만 MYBATIS에서는 'ORA-22816: unsupported feature with RETURNING clause' error 발생

해결 : selectKey 사용

상세 사용법은
http://knoc720.blogspot.kr/2014/07/mybatis-selectkey.html
주소 참고



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<insert id="insertMail" parameterType="hashmap" >
        <!-- 본래의 Insert 실행 전에(order="BEFORE") PK값을 구해 I_MAIL_ID에 저장 -->
        <selectKey  keyProperty="I_MAIL_ID" resultType="string" order="BEFORE">
            SELECT TARGET.SEQUENCE_MAIL.NEXTVAL FROM DUAL
        </selectKey >
        INSERT INTO 
        NETPION_MAIL.AUTOMAIL_INTERFACE_ANALYSIS
        (AUTOCODE,NAME, EMAIL, FROMNAME, FROMADDRESS, TITLE, CONTENT, INSERTDATE)
        values(
            #{I_MAIL_ID, jdbcType=NUMERIC}, <!--앞서 저장한 I_MAIL_ID 입력-->
            #{NAME, jdbcType=VARCHAR},
            #{EMAIL, jdbcType=VARCHAR},
            #{FROMNAME, jdbcType=VARCHAR},
            #{FROMADDRESS, jdbcType=VARCHAR},
            #{TITLE, jdbcType=VARCHAR},
            #{CONTENT, jdbcType=VARCHAR},
            SYSDATE
            )
     </insert
cs





AD_1