업무 중에 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 ;
- 위처럼 괄호'()'를 빼면 에러없이 정상작동한다.