PL/SQL 프로시저 / 함수 만드는 법
프로시저 (Procedure)
- 특정 작업을 수행하고, 결과를 반환하지 않아도 됨
- 보통 INSERT, UPDATE, DELETE 같은 실행 작업에 사용
- 예제: 직원 추가 프로시저
CREATE OR REPLACE PROCEDURE add_employee ( p_id IN employees.employee_id%TYPE, p_name IN employees.first_name%TYPE ) IS BEGIN INSERT INTO employees(employee_id, first_name) VALUES (p_id, p_name); DBMS_OUTPUT.PUT_LINE('직원 추가 완료'); END;
- 호출 방법
BEGIN
add_employee(999, '홍길동');
END;
⸻
함수 (Function)
- 값을 반환(return) 함
- 보통 계산, 조회 등 리턴값이 필요한 작업에 사용
- 예제: 직원 이름 반환 함수
CREATE OR REPLACE FUNCTION get_employee_name ( p_id IN employees.employee_id%TYPE ) RETURN VARCHAR2 IS v_name employees.first_name%TYPE; BEGIN SELECT first_name INTO v_name FROM employees WHERE employee_id = p_id; RETURN v_name; EXCEPTION WHEN NO_DATA_FOUND THEN RETURN '없음'; END;
- 호출 방법
SELECT get_employee_name(100) FROM dual;