하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여 작성해 놓은 작은 서브 프로그램
함수 분류
⭐단일 행 함수
- 문자 처리 함수
- 숫자 처리 함수
- 날짜 처리 함수
- 형 변환 함수
- NULL 처리 함수
- 선택 함수⭐ 그룹 행 함수
각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과 반환
주어진 컬럼 값/문자열의 길이(문자 개수) 반환
LENGTH(CHAR|STRING)
주어진 컬럼 값/문자열의 길이(BYTE) 반환
문자열로부터 특정 문자의 시작 위치를 찾아서 반환
문자열에서 특정 문자열을 추출해서 반환
문자열의 왼쪽 / 오른쪽에 특정 문자를 덧붙여서 반환
문자열에서 특정 문자열을 제거해서 반환
TRUNC(date)은 해당 날짜의 자정 (midnight)을 나타냄. 또한, TRUNC(date, 'unit') 형식을 사용하여 특정 단위로 날짜를 절삭할 수 있음
-- date를 자정으로 절삭 SELECT TRUNC(SYSDATE) FROM dual; -- date를 월 단위로 절삭 SELECT TRUNC(SYSDATE, 'MONTH') FROM dual; -- * dual : Oracle에서 더미 테이블로 사용되는 특수한 테이블
TRUNC(SYSDATE - HIRE_DATE)
: SYSDATE와 HIRE_DATE 간의 시간 차이를 일(day)로 절삭하여 반환
인자로 날짜 두 개를 전달받아 개월 수 차이를 숫자 데이터형으로 반환
MONTHS_BETWEEN(기준이 되는 날짜, 개월 수를 구하려는 날짜)
MONTHS_BETWEEN(SYSDATE, HIRE_DATE)
인자로 전달받은 날짜에 인자로 받은 숫자만큼 개월 수를 더하여 특정 날짜 반환
ADD_MONTHS(기준이 되는 날짜, 더하려는 개월 수)
ADD_MONTHS(HIRE_DATE, 6)
인자로 전달받은 날짜에 인자로 받은 요일이 가장 가까운 날짜 반환
NEXT_DAY(DATE,STRING[OR NUMBER]
-- 일 : 1, 월 : 2, ... , 토 : 7
NEXT_DAY(SYSDATE, ‘월요일’)
NEXT_DAY(SYSDATE, 2)
NEXT_DAY(SYSDATE, ‘월’)
인자로 전달받은 날짜가 속한 달의 마지막 날짜 반환