메뉴 여닫기
개인 메뉴 토글
로그인하지 않음
만약 지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Oracle (토론 | 기여)님의 2025년 5월 18일 (일) 02:30 판

Oracle PL/SQL 함수 설명

1. 개념 요약

  • 함수(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) 문자열을 숫자로 변환