오라클(Oracle)에서 프로시저(Procedure)는 하나 이상의 SQL 문과 PL/SQL(Procedural Language/Structured Query Language) 코드를 가진 데이터베이스 객체입니다. 프로시저는 이름을 가지고 있으며, 일련의 작업을 수행하기 위해 호출될 수 있습니다. 다음은 간단한 예제로 오라클 프로시저를 작성하는 방법을 보여드리겠습니다.
1. 우선, 사원 테이블을 생성합니다
CREATE TABLE employees (
emp_id NUMBER PRIMARY KEY,
emp_name VARCHAR2(100),
salary NUMBER,
department VARCHAR2(50)
);
2. 프로시저를 생성합니다
CREATE OR REPLACE PROCEDURE calculate_average_salary (dept_name IN VARCHAR2) IS
avg_salary NUMBER;
BEGIN
-- 평균 급여를 계산하여 avg_salary 변수에 저장합니다.
SELECT AVG(salary) INTO avg_salary
FROM employees
WHERE department = dept_name;
-- 결과를 출력합니다.
DBMS_OUTPUT.PUT_LINE('Department: ' || dept_name || ', Average Salary: ' || avg_salary);
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('No employees found in the ' || dept_name || ' department.');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('Error occurred: ' || SQLERRM);
END;
3.프로시저를 실행합니다.
BEGIN
calculate_average_salary('IT'); -- IT 부서의 평균 급여를 계산합니다.
calculate_average_salary('HR'); -- HR 부서의 평균 급여를 계산합니다.
END;
프로시저를 호출할 때 부서 이름을 인자로 전달하여 평균 급여를 계산하고, 결과를 출력합니다. 만약 해당 부서에 사원이 없는 경우 NO_DATA_FOUND 예외가 처리되며, 그 외의 다른 예외가 발생하는 경우에는 OTHERS 예외 핸들러에서 오류 메시지가 출력됩니다.
위 예제는 간단한 프로시저 작성 방법을 보여주기 위한 것이며, 실제로는 더 복잡하고 실용적인 작업을 프로시저 내에서 수행할 수 있습니다.
728x90
반응형