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
다른 집합 연산자는 생략할게요. 😘