with 절에 insert 가 안되나요? 0 2 7,387

by 불장작 [SQL Query] [2020.01.16 08:48:57]


insert 하려고 하는데 좀 효율적으로 할려고 with 절을 사용했는데 오류가 나네요

안되면 다른 방법이 있을까요

예)

WITH TMP AS

(SELECT NVL(TO_NUMBER(MAX(SUBSTR(KN_NO, 3, 8))), 0) MAX_NO

   FROM EA1400_MAP)

INSERT INTO EA1400_MAP (SHA, KN_NO)

SELECT SHA,

          'KN' || TRIM(TO_CHAR(TMP.MAX_NO + ROWNUM, '00000000')) KN_NO

    FROM TMP,

             (SELECT SHA,

                        ROWNUM

                FROM BZ1400_TYPE A

              WHERE NOT EXISTS (SELECT 1 FROM EA1400_MAP B WHERE A.SHA = B.SHA)

             )

많은 고수분들의 조언 부탁드립니다.

by 신이만든지기 [2020.01.16 09:46:08]
INSERT INTO EA1400_MAP(
                       SHA
                     , KN_NO
                      )
    WITH TMP AS (SELECT NVL(TO_NUMBER(MAX(SUBSTR(KN_NO, 3, 8))), 0) MAX_NO FROM EA1400_MAP)
    SELECT SHA
         , 'KN' || TRIM(TO_CHAR(TMP.MAX_NO + ROWNUM, '00000000')) KN_NO
      FROM TMP
         , (
               SELECT SHA
                    , ROWNUM
                 FROM BZ1400_TYPE A
                WHERE NOT EXISTS
                          (SELECT 1
                             FROM EA1400_MAP B
                            WHERE A.SHA = B.SHA)
           )

 


by 불장작 [2020.01.16 12:53:08]

답변감사합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입