ORA-00909: 인수의 개수가 부적합합니다 (ORA-00909: invalid number of arguments)

ORA-00909: 인수의 개수가 부적합합니다

해당 오류는 영문으로 ORA-00909: invalid number of arguments 라고 발생합니다. 

ORA-00909 invalid number of arguments

해당 오류를 쉽게 하기 위해 간단한 예제를 준비해 보았으니, 이와 함께 해결하는 방법에 대해 살펴보겠습니다. 이번 예제에서는 오라클에서 기본적으로 제공하는 함수 중 하나인 MAX를 이용할 예정이랍니다~

MAX 함수를 사용하는 구문은 다음과 같습니다. 참고로 MAX 함수는 숫자 형식의 인수를 받아서 가장 큰 값을 반환하는 역할을 합니다.

MAX ( [ DISTINCT | ALL ] Expression )

MAX 함수에서 DISTINCT 및 ALL은 선택에 따라 둘 중 하나를 선택할 수 있다는 뜻이며, 실제 인수는 Expression 하나를 사용하는 함수이며 지정한 컬럼 중 가장 큰 값을 가져올 수 있습니다.

함수의 인수 개수 적합한 경우

MAX 함수는 일반적으로 테이블의 열에 대해 사용되어 해당 열의 최댓값을 찾는 데 사용됩니다. 그리고 앞에서 설명해드린 것처럼 인수는 대상 컬럼 하나만 설정하면 됩니다. 다음은 정상적인 인수 설정으로 값을 조회하는 경우입니다.

SELECT MAX (1) FROM DUAL;

    MAX(1)
----------
         1

함수의 인수 개수 부적합한 경우

반대로, MAX 함수에 2개의 정수를 인수로 전달해 보겠습니다. 인수가 하나인 함수에 개수를 부적합하게 설정하였을 때에는 다음과 같은 결과를 볼 수 있습니다.

SELECT MAX (1, 2) FROM DUAL;

ERROR at line 1:
ORA-00909: invalid number of arguments

ORA-00909: invalid number of arguments

참고로 두 숫자 중에서 최대값을 찾고자 했다면, 다음과 같이 MAX 대신 GREATEST 함수를 사용할 수 있답니다.

SELECT GREATEST(1, 2) FROM DUAL;

GREATEST(1,2)
-------------
            2

이렇게 하면 1과 2 중에서 더 큰 값인 '2'가 선택됩니다. GREATEST 함수는 입력된 값 중에서 가장 큰 값을 반환하는 역할을 하기 때문이랍니다~

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗