DataBase/Oracle

[Oracle] PL/SQL 함수(Function) 작성법

mingmongs 2025. 6. 5. 09:00

title

오라클 PL/SQL의 대표적인 부 프로그램으로 함수(Function)이 있다.
이는 오라클에서 제공하는 내장함수(TO_CHAR, TO_DATE 등)가 아닌,
사용자 정의 함수(User Defined Function)이다.
함수를 직접 정의함으로써 특정 기능들을 재사용할 수 있기 때문에,
쿼리문을 더욱 간결하게 만들 수 있는 장점이 있다.

 

1) 함수(Function) 이란?

: 오라클의 내장함수 외, 사용자가 직접 정의하여 사용할 수 있는 함수이다.
특정 기능들을 모듈화, 재사용할 수 있어 복잡한 쿼리문을 간결하게 만들 수 있다.

 

2) 함수 기본 문법

CREATE OR REPLACE FUNCTION 함수 이름 (매개변수1, 매개변수2....)

RETURN 데이터 타입;

IS[AS]

변수, 상수 선언..

BEGIN

실행부

RETURN 반환값

[EXCEPTION 예외처리부]

END [함수 이름];

 

3) 권한

: 함수 작성시 권한이 필요하다.

  • 자신의 스키마 : CREATE PROCEDURE 권한
  • 다른 사용자의 스키마 : CREATE ANY PROCEDURE 권한

 

4) 함수 사용 예시

4-1) 함수 작성

CREATE OR REPLACE FUNCTION fn_sum_gugu( num NUMBER )
RETURN NUMBER
IS
  result NUMBER := 0;
BEGIN
  FOR i in 1..9
    LOOP
     result := result + (num * i);
    END LOOP;
    RETURN result;
END;

 

4-2) 함수 호출

SELECT fn_sum_gugu(3)
FROM dual;

 

 

[reference]
https://gdtbgl93.tistory.com/149
https://goddaehee.tistory.com/261
https://velog.io/@floyd/Oracle-PLSQL-FUNCTION