Database/Database

[Oracle] 오라클 함수

개발소 2024. 5. 28. 20:47

오라클에는 기본적으로 제공하는 내장 함수와 사용자 정의 함수가 존재한다.

내장 함수는 한 행당 결과가 나오는 단일행 함수와 여러 행이 하나의 행으로 결과가 반환되는 다중행 함수로 나뉜다.

 

1. 문자 함수

문자 데이터를 가공하거나 특정 결과를 도출하는 함수이다.

 

UPPER

문자 데이터를 모두 대문자로 반환한다.

LOWER

문자 데이터를 모두 소문자로 반환한다.

INITCAP

문자 데이터를 첫 글자는 대문자, 나머지를 소문자로 반환한다.

SELECT ENAME, UPPER(ENAME), LOWER(ENAME), INITCAP(ENAME)
FROM EMP;

 

LENGTH

문자열 길이를 구하는 함수

 

SUBSTR

문자열의 일부를 추출하는 함수

SUBSTR(문자열 데이터, 시작 위치, 추출 길이)

SUBSTR(문자열 데이터, 시작 위치)

 

INSTR

문자열 데이터 안에 특정 문자나 문자열의 위치를 출력하는 함수

 

REPLACE

특정 문자를 다른 문자로 바꾸는 함수

 

LPAD, RPAD

데이터의 빈 공간을 특정 문자로 채우는 함수

 

CONCAT

두 문자열 데이터를 합치는 함수

 

TRIM, LTRIM, RTRIM

특정 문자를 지우는 함수, 보통 공백을 지울 때 사용된다.

 

 

2. 숫자 함수

숫자 데이터를 연산하거나 수치를 조정하는 함수이다.

 

ROUND

특정 위치에서 반올림한다.

TRUNC

특정 위치에서 버린다.

CEIL, FLOOR

입력된 숫자와 가까운 큰 정수와 작은 정수를 반환한다.

 

 

3. 날짜 함수

날짜 데이터를 다루는 함수이다.

 

ADD_MONTHS

특정 날짜에서 지정한 개울 수 이후 날짜 데이터를 반환한다.

SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3)
FROM DUAL;

 

MONTHS_BETWEEN

두 날짜 데이터를 입력하고 개월 수 차이를 반환한다.

 

NEXT_DAY: 돌아오는 요일

LAST_DAY: 달의 마지막 날짜

 

ROUND. TRUNC: 날짜 또한 반올림과 버림 가능하다.

 

 

4. 형 변환 함수

 

날짜 리터럴

  • DATE ‘YYYY-MM-DD’
  • TIMESTAMP ‘YYYY-MM-DD HH24:MI:SS.FF’

TO_CHAR 함수

날짜와 숫자 데이터를 문자 데이터로 변환하는 함수

SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS 현재날짜시간
FROM DUAL;

 

TO_NUMBER 함수

문자 데이터를 숫자 데이터로 변환하는 함수

 

TO_DATE 함수

문자 데이터를 날짜 데이터로 변환하는 함수

 

 

5. NULL 처리 함수

 

NVL

첫번째 데이터가 NULL이 아니면 그대로 반환하고 NULL이라면 입력 데이터에 지정한 값을 반환한다.

 

NVL2

NULL이 아닐 때 반환할 데이터를 추가로 지정할 수 있다.

 

 

6. DECODE 함수와 CASE문

DECODE([검사 대상],
`		[조건1], [조건1일 때 반환 결과],
`		[조건3], [조건2일 때 반환 결과],
`		[조건3], [조건3일 때 반환 결과],
		[위 조건에 일치하지 않는 경우의 반환 결과])

 

 

CASE문

SELECT EMPNO, ENAME, JOB, SAL,
	CASE JOB
    	WHEN 'MANAGER' THEN SAL * 1.1
        WHEN 'SALESMAN' THEN SAL * 1.05
        ELSE SAL * 1.03
	END AS UPSAL
    FROM EMP;