DB/Oracle
프로시저 생성 (feat.Job)
evolutioning
2024. 7. 17. 15:28
프로시저?
오라클에서 프로시저는 PL/SQL을 사용해 만들어진다.
이렇게 작성된 프로시저는 데이터 베이스 서버에 저장되어 특정 작업을 하는데 사용된다.
특징 :
- 재사용성: 한 번 정의된 프로시저는 여러 곳에서 호출하여 사용
- 모듈화: 복잡한 작업을 여러 개의 작은 프로시저로 나누어 코드의 가독성과 유지보수성을 높일 수 있다.
- 성능 향상: 프로시저는 서버에서 실행되므로 네트워크 트래픽을 줄이고 성능을 향상시킬 수 있다.
- 보안: 데이터베이스의 직접적인 접근을 제한하고 프로시저를 통해서만 데이터를 조작하도록 함으로써 보안을 강화할 수 있다.
사용 방법 :
CREATE [OR REPLACE] 프로시저_이름[(매개변수)]
IS --AS 가능( * IS or AS 둘중 무엇을 써도 상관없다. )
변수선언
BEGIN
프로시저 본문
[EXCEPTION
예외처리]
END 프로시저_이름;
예시 :
CREATE OR REPLACE PROCEDURE add_employee (
p_first_name IN VARCHAR2,
p_last_name IN VARCHAR2,
p_email IN VARCHAR2,
p_hire_date IN DATE,
p_job_id IN VARCHAR2,
p_salary IN NUMBER
) IS
BEGIN
INSERT INTO employees (first_name, last_name, email, hire_date, job_id, salary)
VALUES (p_first_name, p_last_name, p_email, p_hire_date, p_job_id, p_salary);
-- 변경내용 커밋
COMMIT;
EXCEPTION
WHEN OTHERS THEN
-- 예외 발생 시 롤백을 수행
ROLLBACK;
-- 예외 메시지를 출력합니다.
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
1) 프로시저 이름 :
add_employee
2) 변수 :
p_first_name IN VARCHAR2,
p_last_name IN VARCHAR2,
p_email IN VARCHAR2,
p_hire_date IN DATE,
p_job_id IN VARCHAR2,
p_salary IN NUMBER
3) 본문 및 COMMIT :
BEGIN
INSERT INTO employees (first_name, last_name, email, hire_date, job_id, salary)
VALUES (p_first_name, p_last_name, p_email, p_hire_date, p_job_id, p_salary);
COMMIT;
4) 예외처리 및 메시지 :
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
이상 프로시저에 대해 간단히 알아보았다.
반응형