1. PL/SQL 개요

PL/SQL(Procedural Language/SQL)은 Oracle 데이터베이스에서 SQL을 절차형 프로그래밍 언어와 결합한 확장 기능입니다. 이를 통해 조건문, 반복문, 예외 처리 등을 사용하여 보다 강력한 데이터베이스 프로그래밍이 가능합니다.

2. PL/SQL 함수란?

PL/SQL 함수(Function)는 특정 입력 값을 받아 하나의 결과 값을 반환하는 저장 프로그램입니다.

함수의 특징

3. PL/SQL 함수 구조

PL/SQL 함수는 다음과 같은 구조를 가집니다.

CREATE OR REPLACE FUNCTION 함수이름 (
    매개변수1 데이터타입,
    매개변수2 데이터타입
) RETURN 반환타입
IS
    변수 선언
BEGIN
    -- 함수 로직
    RETURN 반환값;
END 함수이름;
/

4. PL/SQL 함수 예제

예제 1: 사원의 연봉 계산 함수

사원의 월급(SALARY)을 입력하면 연봉을 계산하여 반환하는 함수를 작성합니다.

CREATE OR REPLACE FUNCTION CALC_ANNUAL_SALARY (
    p_salary NUMBER
) RETURN NUMBER
IS
    v_annual_salary NUMBER;
BEGIN
    v_annual_salary := p_salary * 12;
    RETURN v_annual_salary;
END CALC_ANNUAL_SALARY;
/

실행 및 테스트

SELECT CALC_ANNUAL_SALARY(5000) FROM dual;

예제 2: 특정 사원의 보너스 계산

사원 번호(EMP_ID)를 입력받아 보너스를 계산하는 함수를 작성합니다.

CREATE OR REPLACE FUNCTION GET_BONUS (
    p_emp_id NUMBER
) RETURN NUMBER
IS
    v_bonus NUMBER;
    v_salary NUMBER;
BEGIN
    -- 사원의 급여 조회
    SELECT SALARY INTO v_salary FROM EMPLOYEES WHERE EMPLOYEE_ID = p_emp_id;

    -- 보너스 계산 (급여의 10%)
    v_bonus := v_salary * 0.1;

    RETURN v_bonus;
END GET_BONUS;
/