오류내용 및 로그를 확인하는 것은 Query를 수정하기 위한 가장 기본적인 단계이다.
질의의 결과 열의 수가 틀립니다.
UNION or UNION ALL을 할때 합치는 두 테이블의 column 수가 동일하지 않을 경우 발생한다.
리터럴이 형식 문자열과 일치하지 않음
TO_DATE / SYSDATE 형식에 문자열이 들어가거나 TO_CHAR 형식에 DATE가 들어가는 등 입력 데이터 타입이 맞지 않을 경우 발생한다.
보통 SELECT문을 생각한다면
SELECT COLUMN_A, COLUMN_B
FROM TABLE
과 같이 특정 COLUMN에 있는 데이터를 그대로 읽어오는 형태를 떠올릴 것이다.
하지만 이러한 SELECT문에서도 상수값을 별도로 설정할 수 있다.
SELECT *
FROM(
SELECT A.COLUMN_A AS A
, A.COLUMN_B AS B
--, B.COLUMN_A AS C --TABLE_B 결합불가할때
, 'Y' AS C --임시조치
FROM TABLE A_A, TABLE_B B
)
특히 table을 결합하는데 해당 table의 데이터가 없거나 결합할 수 없는 상태일 경우, 해당 COLUMN에 대해서만 상수값 처리를 하면 모든 쿼리문을 수정할 필요없이 간단하게 해결할 수도 있을 것이다.
ORA01789 - https://huskdoll.tistory.com/196
ORA01861 - https://ajdahrdl.tistory.com/11