본문 바로가기

오라클의 프로시저(procedure)

DBA-DEV 2024. 3. 4.

오라클에서 프로시저는 여러 SQL문이나 PL/SQL 블록을 하나로 묶어서 실행하고 재사용할 수 있는 프로그램의 구조로, 이 글에서는 Oracle의 프로시저에 대해 설명합니다.

프로시저의 장점

  • 재사용 가능성 : 한번 작성한 프로시저는 반복해서 사용할 수 있어 개발 생산성을 높여줍니다.
  • 성능 향상 : SQL문이 실행될 때마다 파싱, 컴파일, 최적화 과정이 진행되지만, 프로시저는 미리 컴파일되어 있어 성능이 향상됩니다.
  • 보안 강화 : 프로시저를 통해 접근할 수 있는 범위를 제한할 수 있습니다.

프로시저 구조

프로시저는 다음과 같은 구조를 가집니다.

CREATE [OR REPLACE] PROCEDURE procedure_name
(parameter1 IN datatype1, parameter2 OUT datatype2)
IS
  -- 변수 선언 부분
BEGIN
  -- 실행할 PL/SQL 블록 또는 SQL문
END;

구조에 대한 설명

  • CREATE [OR REPLACE] PROCEDURE : 프로시저를 생성하거나 변경하는 키워드입니다. OR REPLACE를 사용하면 동일한 이름의 프로시저가 이미 존재할 경우 기존의 프로시저를 대체합니다.
  • procedure_name : 프로시저의 이름입니다. Oracle에서는 대소문자를 구분하지 않으며, 대부분의 경우 대문자로 작성합니다.
  • (parameter1 IN datatype1, parameter2 OUT datatype2) : 프로시저의 입력 및 출력 파라미터를 지정합니다. IN 파라미터는 프로시저 내부에서 읽을 수 있으며, OUT 파라미터는 프로시저 내부에서 변경할 수 있습니다.
  • IS : 프로시저 본문을 시작하는 키워드입니다.
  • -- 변수 선언 부분 : 프로시저에서 사용할 변수를 선언하는 부분입니다. 필요에 따라서 사용할 수 있습니다.
  • BEGIN : 프로시저의 시작 부분을 지정합니다.
  • -- 실행할 PL/SQL 블록 또는 SQL문 : 프로시저 내부에서 실행할 PL/SQL 블록이나 SQL문을 작성합니다.
  • END; : 프로시저의 끝을 나타내는 키워드입니다.

예시

아래의 예시는 Employees 테이블에서 EmployeeID가 1인 행의 FirstName을 'John'으로 업데이트하는 프로시저입니다.

CREATE OR REPLACE PROCEDURE updateFirstName
IS
BEGIN
  UPDATE Employees
  SET FirstName = 'John'
  WHERE EmployeeID = 1;
END;

위 프로시저는 Employees 테이블에서 EmployeeID가 1인 행의 FirstName을 'John'으로 업데이트하는 프로시저를 정의합니다.

 

'DB' 카테고리의 다른 글

오라클의 트랜잭션  (0) 2024.03.04
오라클의 함수(function)  (0) 2024.03.04
오라클의 INSERT  (0) 2024.03.04
오라클의 데이터 정렬  (0) 2024.03.03
오라클의 연산자  (0) 2024.03.03

댓글