PL/SQL(Procedural Language/SQL)은 Oracle 데이터베이스에서 SQL을 절차형 프로그래밍 언어와 결합한 확장 기능입니다. 이를 통해 조건문, 반복문, 예외 처리 등을 사용하여 보다 강력한 데이터베이스 프로그래밍이 가능합니다.
PL/SQL 함수(Function)는 특정 입력 값을 받아 하나의 결과 값을 반환하는 저장 프로그램입니다.
PL/SQL 함수는 다음과 같은 구조를 가집니다.
CREATE OR REPLACE FUNCTION 함수이름 (
매개변수1 데이터타입,
매개변수2 데이터타입
) RETURN 반환타입
IS
변수 선언
BEGIN
-- 함수 로직
RETURN 반환값;
END 함수이름;
/
사원의 월급(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;
사원 번호(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;
/