ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다. (ORA-01789: query block has incorrect number of result columns)

ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다. 오류를 해결하는 방법에 대해 알아보도록 합시다.

ORA-01789 원인

해당 오류는 집합 연산자(set operator : UNION ALL, UNION, INTERSECT, MINUS)에서 열의 개수가 맞지 않을 때 발생합니다. (질의 블록 부정확한 수 결과 열)

ORA-01789 해결하기

SELECT 블록에서 열의 개수가 맞지 않는 부분을 확인해 주세요.

집합연산자별로 나누어 SELECT 부분을 비교하시면 됩니다.

잘못된 예

--UNION ALL
SELECT 'A', 'B' FROM DUAL
UNION ALL
SELECT '1' FROM DUAL;

ERROR at line 1:
ORA-01789: query block has incorrect number of result columns
--UNION
SELECT 'A', 'B' FROM DUAL
UNION
SELECT '1' FROM DUAL;

ERROR at line 1:
ORA-01789: query block has incorrect number of result columns
--INTERSECT
SELECT 'A', 'B' FROM DUAL
INTERSECT
SELECT '1' FROM DUAL;

ERROR at line 1:
ORA-01789: query block has incorrect number of result columns
--MINUS
SELECT 'A', 'B' FROM DUAL
MINUS
SELECT '1' FROM DUAL;

ERROR at line 1:
ORA-01789: query block has incorrect number of result columns

바른 예

SELECT 'A', 'B' FROM DUAL
UNION ALL
SELECT '1', '2' FROM DUAL;

'A' 'B'
-- --
A  B
1  2

다른 집합 연산자는 생략할게요. 😘

댓글