함수는 기존의 SQL 문 내에서 바로 사용할 수 있다는 장점이 있다.
CREATE OR REPLACE FUNCTION getSalary(
p_no employees.employee_id%TYPE)
RETURN NUMBER
IS
v_salary NUMBER;
BEGIN
SELECT salary INTO v_salary
FROM employees
WHERE employee_id = p_no;
RETURN v_salary;
END;
실행 예제는 아래와 같다.
SELECT getSalary(100) FROM dual;
CREATE OR REPLACE FUNCTION get_emp_name(
p_emp_no 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_emp_no;
RETURN v_name;
EXCEPTION
WHEN NO_DATA_FOUND THEN
return '해당하는 사원이 없습니다.';
END;
실행 방법은 아래와 같다.
SELECT get_emp_name(100) AS name FROM dual;