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);

 

이상 프로시저에 대해 간단히 알아보았다.

반응형