All thing of the world!

Oracle NVL 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle NVL 설명 : 오라클 함수

WorldSeeker 2021. 3. 31. 09:01

1. 함수의 목적

   Oracle NVL은
expr1인자가 null이면 expr2를 반환하고, expr1인자가 null이 아니면 expr1을 반환한다.
  (CASE WHEN expr1 is null THEN expr2 ELSE expr1 END와 같은 로직이다)


2. 샘플을 통한 개념 퀵뷰

TO_CHAR(commission_pct)가 null이면 'Not Applicable'을 반환하고, not null이면 TO_CHAR(commission_pct)를 반환한다.

SELECT last_name, NVL(TO_CHAR(commission_pct), 'Not Applicable') commission
FROM employees
WHERE last_name LIKE 'B%'
ORDER BY last_name;


3. 사용방법  


4. 함수 PARAMETER 설명

[expr1],[expr2]
NVL에 태울 데이터를 지정하는 입력 파라미터이다.
어떠한 데이터타입도 가능하며, 양쪽의 데이터타입이 다르다면 한쪽의 데이터 타입으로 맞춘다.
같은 타입으로 만들 수 없다면 에러를 반환한다.

반환되는 데이터 타입은 expr1과 expr2의 데이터타입과 동일하다.

5. 다양한 샘플표현

example1) expr1과 expr2의 데이터타입을 동일하게 만들 수 없을 경우 에러가 발생한다.
                  아래의 경우 expr2의 'abc'를 숫자로 변경할 수 없어 에러가 발생한다.

select nvl(123,'abc')
from dual;

ORA-01722: 수치가 부적합합니다
01722. 00000 -  "invalid number"
*Cause:    The specified number was invalid.
*Action:   Specify a valid number.

 

Comments