IT/ORACLE

ORACLE 오라클 프로시저 PROCEDURE 서식 및 생성

!? 2024. 3. 9.

 

 

 

오라클의 프로시저에 대한 자세한 설명을 드리겠습니다. 프로시저는 특정 작업을 수행하는 PL/SQL 블록의 일부로, 일련의 SQL문과 PL/SQL 코드를 하나의 실행 가능한 단위로 묶어 놓은 것입니다.

 

프로시저 PROCEDURE 기본 구조

 

프로시저는 일반적으로 다음과 같은 구조로 이루어져 있습니다.

CREATE [OR REPLACE] PROCEDURE procedure_name [(parameter_name [type [IN | OUT | IN OUT] ...])]
IS
  -- 변수 선언
BEGIN
  -- 코드 실행
EXCEPTION
  -- 예외 처리
END;
  • OR REPLACE: 이 키워드를 사용하면, 이름이 동일한 기존 프로시저가 있다면 그 위에 덮어씁니다.
  • procedure_name: 프로시저의 이름입니다.
  • parameter_name: 프로시저에서 사용할 매개변수의 이름입니다.
  • type: 매개변수의 데이터 타입입니다.
  • IN | OUT | IN OUT: 매개변수의 방향을 나타냅니다. IN은 입력, OUT은 출력, IN OUT은 둘 다를 의미합니다.

 

 

 

 

프로시저 PROCEDURE 생성 예제

 

다음은 간단한 프로시저 생성 예제입니다.

CREATE OR REPLACE PROCEDURE proc_example
(
	p_id IN NUMBER, 
	p_name OUT VARCHAR2
)
IS
BEGIN
  SELECT name INTO p_name FROM employees WHERE employee_id = p_id;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    p_name := NULL;
END;

 

이 프로시저는 employees 테이블에서 주어진 employee_id에 해당하는 name을 조회하는 작업을 수행합니다. 만약 해당하는 데이터가 없을 경우, p_name은 NULL로 설정됩니다.

 

 

프로시저 PROCEDURE 실행

 

프로시저를 실행하기 위해서는 EXECUTE 또는 CALL 문을 사용하거나, 다른 PL/SQL 블록 내에서 호출할 수 있습니다.

 

DECLARE
  v_name VARCHAR2(100);
BEGIN
  proc_example(1, v_name);
  DBMS_OUTPUT.PUT_LINE('Employee name is: ' || v_name);
END;

 

이 코드는 proc_example 프로시저를 호출하고, 결과를 출력합니다. v_name 변수는 프로시저의 OUT 매개변수로 사용되며, 프로시저가 실행된 후에는 해당 직원의 이름을 가지게 됩니다.

 

 

 

 

프로시저 PROCEDURE  예외처리

 

프로시저 내에서는 예외 처리를 통해 예상치 못한 오류를 처리할 수 있습니다. 예외는 프로시저의 실행 도중 발생할 수 있는 이상 상황을 나타내며, 예외가 발생하면 프로시저의 실행이 중단되고 control이 예외 처리 블록으로 이동합니다. 

예외 처리 블록은 프로시저의 'EXCEPTION' 섹션에 위치하며, 'WHEN exception THEN' 구문을 사용하여 특정 예외가 발생했을 때 수행할 작업을 정의할 수 있습니다.

 


프로시저를 통해 SQL 코드를 모듈화하면, 코드의 재사용성을 높이고 가독성을 향상시킬 수 있습니다. 이외에도 프로시저는 데이터베이스의 성능을 향상시키고, 보안을 강화하는 데에도 이점이 있습니다. 특히, 프로시저는 SQL 명령문의 실행 계획을 캐시하여 재사용함으로써 성능을 향상시키고, 데이터베이스 서버에서 직접 실행되므로 네트워크 트래픽을 줄일 수 있습니다. 또한, 프로시저를 통해 데이터 접근을 제어하면, 데이터에 대한 불필요한 직접 접근을 제한하여 데이터베이스의 보안을 강화할 수 있습니다.

 

 

댓글