개발 관련/ORACLE

oracle mybatis multi insert

riberio 2020. 4. 27. 00:25

insert all 구문 안에 시퀀스 조회 구문이 문법에러가 나서 함수로 변경 후 함수 호출

 

-- 시퀀스 조회 함수 생성

CREATE OR REPLACE FUNCTION FN_GET_SEQ( SEQ_NAME IN VARCHAR2 ) 
RETURN 
  NUMBER 
IS
  V_NUM NUMBER;
  SQL_STMT VARCHAR2(64);
BEGIN
  SQL_STMT := 'select ' || SEQ_NAME || '.nextval from dual';
  EXECUTE IMMEDIATE SQL_STMT INTO V_NUM;
  RETURN V_NUM;
END;

 

-- mybatis 구문

INSERT ALL
     <   foreach collection="excelDataList" item="item" >
        INTO T_GOODS_IMAGE_UPLOAD (
            IDX, GROUPIDX, FILENAME, STYCD, COLCD, TYPE, SORT, MAINYN, ADMINNO
        ) VALUES 
        (FN_GET_SEQ('GOODS_IMAGE_UPLOAD_SEQ'), #{item.groupIdx}, #{item.fileName}, #{item.stycd}, #{item.colcd}, #{item.type}, #{item.sort}, #{item.mainYn}, #{item.adminNo})
    <   /foreach   >
    SELECT * FROM DUAL

 

 

 ** foreach 문법 맞출것 **