본문 바로가기
📌 1. 개발 & 프로그래밍/Oracle & 데이터베이스

17강: 값 반환의 마법사 - 함수(Function)의 이해와 활용

by lastdetective 2025. 5. 7.
반응형

 

📊 오라클 데이터베이스 마스터하기

 17강: 값 반환의 마법사 - 함수(Function)의 이해와 활용

안녕하세요! 이번 강의에서는 계산 결과를 반환하는 PL/SQL 함수를 배워보겠습니다.

🔢 1. 함수란?

입력 매개변수를 받아 계산 후 단일 값을 반환하는 PL/SQL 블록입니다.

🌟 2. 주요 장점

  • SQL 쿼리 내에서 직접 호출 가능
  • 복잡한 계산 로직 캡슐화
  • 코드 재사용성 향상

🛠️ 3. 함수 생성

CREATE OR REPLACE FUNCTION get_annual_salary (
    p_id IN employees.employee_id%TYPE
)
RETURN NUMBER
IS
    v_salary employees.salary%TYPE;
    v_annual NUMBER;
BEGIN
    SELECT salary INTO v_salary
    FROM employees WHERE employee_id = p_id;
    
    v_annual := v_salary * 12;
    RETURN v_annual;
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        RETURN NULL;
END;
/

📤 4. 함수 호출 방법

SQL 쿼리 내에서:

SELECT employee_id, first_name, 
       get_annual_salary(employee_id) AS annual_salary
FROM employees;

PL/SQL 블록 내에서:

DECLARE
    v_salary NUMBER;
BEGIN
    v_salary := get_annual_salary(100);
    DBMS_OUTPUT.PUT_LINE('연봉: ' || v_salary);
END;
/

⚠️ 5. 주의사항

  • 반드시 RETURN 문이 있어야 함
  • SQL에서 호출 시 부작용(side effect)이 없어야 함
  • 주로 IN 매개변수만 사용

팁: 자주 사용하는 계산 로직은 함수로 구현하면 SQL 쿼리를 간결하게 유지할 수 있습니다.

이번 강의에서는 값을 반환하는 PL/SQL 함수를 학습했습니다. 다음 강의에서는 트리거(Trigger)에 대해 알아보겠습니다.

728x90
반응형