오라클의 프로시저(procedure)
오라클에서 프로시저는 여러 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 |
댓글