Oracle PL/SQL 함수 설명
개념 요약
- 함수(Function)는 하나의 값을 반환하는 PL/SQL 서브프로그램입니다.
- 프로시저(Procedure)와 달리, 함수는 항상 RETURN을 통해 결과를 반환해야 하며, SQL문 안에서도 호출이 가능합니다.
주요 특징
- 반드시 하나의 값 반환
- SELECT문, WHERE절, PL/SQL 블록 등 다양한 위치에서 호출 가능
- 입력 매개변수(Parameter)를 사용할 수 있음
함수 문법
CREATE OR REPLACE FUNCTION 함수이름 ( 매개변수명 데이터타입 ) RETURN 반환타입 IS -- 변수 선언부 BEGIN -- 로직 처리 RETURN 반환값; END;
함수 설명
항목 | 설명 |
---|---|
함수(Function) | 값을 반환하는 PL/SQL 서브프로그램 |
사용 목적 | 로직을 재사용하고 SQL 내에서 값 계산 |
반환값 필수 | RETURN 문을 통해 한 개의 값 반환 |
호출 위치 | SELECT, WHERE, PL/SQL 블록 등 |
예시 | SELECT 함수명(매개변수) FROM DUAL; |
예시
CREATE OR REPLACE FUNCTION get_tax ( p_amount NUMBER ) RETURN NUMBER IS BEGIN RETURN p_amount * 0.1; END;
사용 예시:
SELECT get_tax(1000) FROM DUAL; -- 결과: 100
oracle 내장함수
1. 날짜 및 시간 함수
함수명 | 설명 |
---|---|
SYSDATE | 현재 날짜와 시간을 반환 |
SYSTIMESTAMP | 현재 날짜와 시간(타임존 포함)을 반환 |
ADD_MONTHS(date, n) | 날짜에 n개월을 더함 |
MONTHS_BETWEEN(d1, d2) | 두 날짜 사이의 개월 수 계산 |
LAST_DAY(date) | 해당 월의 마지막 날짜 반환 |
TRUNC(date) | 날짜의 시/분/초를 제거 (일 단위로 자름) |
ROUND(date, 'fmt') | 날짜를 지정한 단위로 반올림 |
2. 문자 함수
함수명 | 설명 |
---|---|
UPPER(str) | 문자열을 대문자로 변환 |
LOWER(str) | 문자열을 소문자로 변환 |
INITCAP(str) | 각 단어의 첫 글자를 대문자로 변환 |
LENGTH(str) | 문자열 길이 반환 |
SUBSTR(str, start, len) | 문자열의 일부 추출 |
INSTR(str, substr) | 부분 문자열의 시작 위치 반환 |
REPLACE(str, old, new) | 문자열 치환 |
TRIM(str) | 문자열 앞뒤의 공백 제거 |
3. 숫자 함수
함수명 | 설명 |
---|---|
ROUND(n, m) | 소수 m자리까지 반올림 |
TRUNC(n, m) | 소수 m자리까지 자름 |
MOD(n1, n2) | 나머지 반환 |
FLOOR(n) | 이하 정수 반환 |
CEIL(n) | 이상 정수 반환 |
ABS(n) | 절대값 반환 |
4. 변환 함수
함수명 | 설명 |
---|---|
TO_CHAR(date/number, fmt) | 날짜나 숫자를 문자열로 변환 |
TO_DATE(str, fmt) | 문자열을 날짜로 변환 |
TO_NUMBER(str) | 문자열을 숫자로 변환 |