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];
프로시저나 함수를 만들 때 매개변수를 정의할 수 있습니다. 선언할 수 있는 매개변수에는 세 가지 유형이 있습니다.
- IN - 프로시저 또는 함수에서 매개 변수를 참조할 수 있습니다. 프로시저 또는 함수에서 매개변수 값을 덮어쓸 수 없습니다.
- OUT - 프로시저나 함수에서 매개 변수를 참조할 수 없지만 프로시저나 함수에서 매개 변수 값을 덮어쓸 수 있습니다.
- 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라는 프로시저를 삭제합니다.
'Database > Oracle PLSQL' 카테고리의 다른 글
PLSQL WHILE LOOP (0) | 2023.06.13 |
---|---|
PLSQL IF-THEN-ELSE (0) | 2023.06.11 |
PLSQL Functions (0) | 2023.06.08 |
PLSQL Sequences (0) | 2023.06.07 |
PLSQL Declaring Variables (0) | 2023.06.06 |