반응형
📊 오라클 데이터베이스 마스터하기
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
반응형
'📌 1. 개발 & 프로그래밍 > Oracle & 데이터베이스' 카테고리의 다른 글
19강: 코드의 체계적인 관리 - 패키지(Package)의 이해와 활용 (0) | 2025.05.12 |
---|---|
18강: 자동 발동되는 마법 - 트리거(Trigger)의 이해와 활용 (0) | 2025.05.10 |
16강: 재사용 가능한 코드 블록 - 저장 프로시저 (0) | 2025.05.05 |
15강: 데이터 행 제어 - 커서(Cursor)의 이해와 활용 (0) | 2025.05.04 |
14강: PL/SQL 기초 (0) | 2025.05.03 |