DB/Oracle

ORA-32034 / ORA-00936: 누락된 표현식 (with 포함된 insert시에)

가은파파 2021. 1. 12. 17:08

업무 중에 with 포함된 insert작업을 하는 중에 'ORA-00936: 누락된 표현식' 가 발생했다.

에러 발생

[ORACLE 11g

 

INSERT INTO IN_TABLE  

  ( COL1, COL2, COL3 )

  ( WITH V_WITH AS ( 

      SELECT A.WITH_COL1, A.WITH_COL2, A.WITH_COL3 

        FROM TEMP_WITH A )

    SELECT B.WITH_COL1, B.WITH_COL2, B.WITH_COL3

    FROM V_WITH B ) ;

 

  • 위와 같이 변경하면 잘 될줄 알았지만 역시 동일한 에러가 난다.
  • 괄로'()' 안에만 쿼리를 돌리면 문제없이 작동한다.
  • WITH문 옆에 괄호가 에러의 원인이었다.

 

[해결방법]

 

INSERT INTO IN_TABLE  

  ( COL1, COL2, COL3 )

  WITH V_WITH AS ( 

    SELECT A.WITH_COL1, A.WITH_COL2, A.WITH_COL3 

      FROM TEMP_WITH A )

  SELECT B.WITH_COL1, B.WITH_COL2, B.WITH_COL3

  FROM V_WITH B  ;

 

  • 위처럼 괄호'()'를 빼면 에러없이 정상작동한다.