Database/Oracle PLSQL

PLSQL Procedures

Riz.Dev 2023. 6. 10. 19:51

Oracle / PLSQL : 프로시저


이 Oracle 튜토리얼에서는 구문과 예제를 통해 Oracle/PLSQL에서 프로시저를 생성하고 삭제하는 방법을 설명합니다.


프로시저 생성

다른 언어에서와 마찬가지로 Oracle에서도 자신만의 프로시저를 만들 수 있습니다.

구문

Oracle에서 프로시저를 만드는 구문은 다음과 같습니다.

CREATE [OR REPLACE] PROCEDURE procedure_name
    [ (parameter [,parameter]) ]

IS
    [declaration_section]

BEGIN
    executable_section

[EXCEPTION
    exception_section]

END [procedure_name];

프로시저나 함수를 만들 때 매개변수를 정의할 수 있습니다. 선언할 수 있는 매개변수에는 세 가지 유형이 있습니다.

  1. IN - 프로시저 또는 함수에서 매개 변수를 참조할 수 있습니다. 프로시저 또는 함수에서 매개변수 값을 덮어쓸 수 없습니다.
  2. OUT - 프로시저나 함수에서 매개 변수를 참조할 수 없지만 프로시저나 함수에서 매개 변수 값을 덮어쓸 수 있습니다.
  3. IN OUT - 프로시저 또는 함수에서 매개변수를 참조할 수 있으며 프로시저 또는 함수에서 매개변수 값을 덮어쓸 수 있습니다.

예제

Oracle에서 프로시저를 만드는 방법의 예를 살펴보겠습니다.

CREATE OR REPLACE Procedure UpdateCourse
   ( name_in IN varchar2 )

IS
   cnumber number;

   cursor c1 is
   SELECT course_number
    FROM courses_tbl
    WHERE course_name = name_in;

BEGIN

   open c1;
   fetch c1 into cnumber;

   if c1%notfound then
      cnumber := 9999;
   end if;

   INSERT INTO student_courses
   ( course_name,
     course_number )
   VALUES
   ( name_in,
     cnumber );

   commit;

   close c1;

EXCEPTION
WHEN OTHERS THEN
   raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END;

이 프로시저를 UpdateCourse라고 합니다. 이 프로시저에는 name_in이라는 매개변수가 하나 있습니다. 이 프로시저는 코스 이름을 기반으로 course_number를 조회합니다. 일치하는 항목을 찾지 못하면 코스 번호가 99999로 기본 설정됩니다. 그런 다음 student_courses 테이블에 새 기록을 삽입합니다.


프로시저 삭제

Oracle에서 프로시저를 생성한 후에는 데이터베이스에서 프로시저를 제거해야 할 수도 있습니다.

구문

Oracle에서 프로시저를 삭제하는 구문은 다음과 같습니다.

DROP PROCEDURE procedure_name;

procedure_name

  • 삭제하려는 프로시저의 이름입니다.

예제

Oracle에서 프로시저를 삭제하는 방법의 예를 살펴보겠습니다.

DROP PROCEDURE UpdateCourse;

이 예제에서는 UpdateCourse라는 프로시저를 삭제합니다.


< 이전 / 다음 : IF-THEN-ELSE >