본문으로 바로가기

  

 

이번 글에서는 ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다. 에러 해결 방법에 대하여 알아 볻록 하겠습니다.

 

ORA-01789: 질의 블록은 부정확한 수의 결과 열을 가지고 있습니다.

ORA-01789: "query block has incorrect number of result columns"

 

 

쿼리를 짜다가 아래와 같은 에러가 발생하였습니다.

 

 

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.

아래의 쿼리는 UNION을 이용하여 두 개의 조회된 내용의 쿼리를 합쳐서 조회하려고 작성한 예제입니다.

 

위의 쿼리를 실행하니 ORA-01789: "query block has incorrect number of result columns" 에러가 발생하였습니다.

에러가 발생한 이유는 UNION의 절대적인 조건으로는 비교되는 컬럼의 수가 일치해야 합니다. 

첫 번째 쿼리에서 EMPNO, ENAME, COMM 총 3개의 컬럼을 조회했다면 두 번째 쿼리에서도 3개의 컬럼이 와야 합니다.

그런데 두 번째 쿼리에서는 2개의 컬럼만 있네요.

즉, 합쳐지는 컬럼의 수가 일치하지 않아서 발생한 에러입니다.

 

해결 방법

UNION 하는 쿼리끼리 조회하는 컬럼의 수를 일치시키면 됩니다.

 

컬럼의 수를 맞추고 다시 쿼리를 실행해 보도록 하겠습니다.

 

컬럼의 수를 맞추니 에러가 나타나지 않고 정상적으로 출력되는 것을 확인할 수 있습니다.

 

 

Reference

[Oracle] UNION과 UNION ALL의 차이점

[Oracle] UNION과 UNION ALL의 개념 및 예제 쿼리