Oracle에서 프로시저(Procedure)와 함수(Function) 만들기
Oracle PL/SQL에서 프로시저(Procedure)와 함수(Function)를 사용하면 반복되는 SQL 작업을 효과적으로 수행할 수 있습니다. 이번 글에서는 기본 개념과 함께 실전 예제를 설명하겠습니다.
1. 프로시저(Procedure)란?
프로시저는 특정 작업을 수행하는 PL/SQL 블록으로, 매개변수를 받을 수 있고 반환 값은 없습니다.
🔹 프로시저 생성 기본 문법
CREATE OR REPLACE PROCEDURE 프로시저명 ( 매개변수1 데이터타입, 매개변수2 데이터타입 ) IS BEGIN -- 실행할 SQL 문장 END; /
🔹 예제: 직원 정보 삽입 프로시저
아래 예제는 직원 정보를 EMPLOYEES
테이블에 추가하는 프로시저입니다.
CREATE OR REPLACE PROCEDURE ADD_EMPLOYEE ( p_emp_id NUMBER, p_name VARCHAR2, p_salary NUMBER ) IS BEGIN INSERT INTO EMPLOYEES (EMP_ID, NAME, SALARY) VALUES (p_emp_id, p_name, p_salary); COMMIT; END; /
🔹 프로시저 실행 방법
EXEC ADD_EMPLOYEE(101, '홍길동', 5000000);
2. 함수(Function)란?
함수는 값을 반환하는 PL/SQL 블록입니다. 특정 연산 후 결과를 반환할 때 유용합니다.
🔹 함수 생성 기본 문법
CREATE OR REPLACE FUNCTION 함수명 ( 매개변수1 데이터타입 ) RETURN 반환타입 IS BEGIN -- 실행할 SQL 문장 RETURN 결과값; END; /
🔹 예제: 직원 급여 조회 함수
아래 함수는 직원 ID를 입력하면 급여를 반환합니다.
CREATE OR REPLACE FUNCTION GET_SALARY ( p_emp_id NUMBER ) RETURN NUMBER IS v_salary NUMBER; BEGIN SELECT SALARY INTO v_salary FROM EMPLOYEES WHERE EMP_ID = p_emp_id; RETURN v_salary; END; /
🔹 함수 실행 방법
SELECT GET_SALARY(101) FROM DUAL;
3. 프로시저와 함수의 차이점
구분 | 프로시저 (Procedure) | 함수 (Function) |
---|---|---|
반환값 | 없음 | 반드시 값 반환 |
사용 방식 | EXEC 또는 프로시저 호출 | SELECT 문에서 사용 가능 |
활용 예 | 데이터 삽입, 수정, 삭제 | 계산식, 데이터 조회 |
4. 마무리 및 추가 기능
이번 글에서는 Oracle에서 프로시저와 함수를 만드는 방법을 배웠습니다. 실무에서는 예외 처리(TRY-CATCH), 커서(Cursor), 동적 SQL을 활용하여 더 강력한 기능을 구현할 수도 있습니다.
더 많은 Oracle SQL 예제를 원하시면 아래 글도 참고해보세요:
질문이 있으시면 댓글로 남겨주세요! 😊
'ORACLE' 카테고리의 다른 글
오라클 '제수가 0입니다' 오류 원인과 해결 방법 (0) | 2025.04.02 |
---|---|
오라클 자율운영 데이터베이스의 혁신과 활용 (0) | 2025.04.01 |
ORACLE PL/SQL 트리거(Trigger) 작성 및 활용 사례 (0) | 2025.03.30 |
ORACLE 스토어드 프로시저(Stored Procedure)와 함수(Function) 차이점 및 예제 (0) | 2025.03.29 |
ORACLE 효율적인 SQL 작성법과 실행 계획(Explain Plan) 분석 (0) | 2025.03.29 |