ETC/Error
SQL ERROR[1790][42000] : ORA-01790 : 대응하는 식과 같은 데이터 유형이어야 합니다.
JB1104
2022. 6. 27. 15:38
728x90
반응형
SMALL
UNION ALL으로 조회를 하는 상황에서 칼럼 타입을 제대로 맞추지 못해서 발생하였다.
A, B, C 칼럼이 있다고 한다면 'UNION ALL'을 진행하는 쿼리의 타입도 동일해야 한다.
즉, 모든 쿼리는 칼럼의 개수와 데이터 타입이 일치해야 한다.
하지만 아래처럼 C칼럼의 타입이 동일하지 않아서 발생한 에러였다.
SELECT
A --VARCHAR2
, B --DATE
, C --VARCHAR2
FROM A
UNION ALL
SELECT
A --VARCHAR2
, B --DATE
, C --NUMBER
FROM B
TO_CHAR()를 사용해서 NUMBER속성을 변경하여 문제를 해결하였다.
SELECT
A --VARCHAR2
, B --DATE
, C --VARCHAR2
FROM A
UNION ALL
SELECT
A --VARCHAR2
, B --DATE
, TO_CHAR(C) --NUMBER
FROM B
참고
UNION : 각 쿼리의 결과 합을 반환하는 합집합 (중복 제거)
UNION ALL : 각 쿼리의 모든 결과를 포함한 합집합 (중복 포함)
728x90
반응형
LIST