[데이터 엔지니어링/SQL] - [PL/SQL] 프로시저란? 프로시저의 장/단점
[PL/SQL] 프로시저란? 프로시저의 장/단점
해당 글은 Oracle의 공식 Document를 보고 작성하였습니다. 경로 프로시저란? 프로시저는 SQL을 확장하여 고성능의 트랜잭션 처리 언어이다. 즉 트랜잭션의 특징인 원자성, 일관성, 독립성, 영속성을
dog-foot-writen.tistory.com
프로시저는 데이터 조작 능력과 절차적 언어의 처리 능력을 결합하여 SQL 문제를 해결할 수 있다면 새로운 API를 배우지 않고 프로시저로 SQL을 실행할 수 있다.
다른 절차적 프로그래밍 언어와 마찬가지로 상수와 변수를 선언하고 프로그램 흐름을 제어하며, 하위 프로그램을 정의하고 런타임 오류를 잡을 수 있다.
주요 기능
- 오류처리
- 프로시저를 사용하면 오류를 쉽게 감지하고 처리할 수 있다.
- 프로시저는 오류 발생 시 예외를 발생시키며 정상적인 실행이 중지되고 블록의 예외 처리 부분으로 이전된다.
- 블록
- 프로시저의 기본 단위는 선언(DECLARE)과 명령문을 그룹화 하는 블록이다.
- 프로시저의 블록은 DECLARE, BEGIN, EXCEPTION, END Z키워드에 의해 정의된다.
- DECLARATION은 블록에 로컬로 적용되며 블록이 수행완료 되면 더이상 존재하지 않는다.
- 블록은 중첩될 수 있다.
- 변수와 상수
- 프로시저는 변수와 상수를 선언한 다음 표현식을 사용할 수 있는 곳 어디에서나 사용할 수 있다.
- 변수 값은 변경될 수 있지만 상수 값은 변경할 수 없다.
- 서브 프로그램
- 프로시저의 서브 프로그램은 반복적으로 호출할 수 있는 프로시저 블록이다.
- 서브 프로그램에 매개변수가 있는 경우 해당 값은 호출할 때마다 다를 수 있다.
- 트리거
- 트리거는 데이터베이스에 저장되고 데이터베이스에서 발생하는 이벤트에 대한 응답으로 실행되는 프로시저이다.
- 이벤트 전후에 트리거가 발생할지 여부, 영향을 받는 각 행에 대해 트리거가 실행될지 여부를 지정할 수 있다.
- 입출력
- 프로시저의 대부분은 데이터베이스 테이블에 데이터를 저장하거나 해당 테이블을 쿼리하는 SQL문으로 수행된다.
- 데이터 추상화
- 커서
- 커서는 특정 SQL문이나 프로시저 처리에 대한 정보를 저장하는 SQL영역에 대한 포인터이다.
- 커서를 사용하여 결과 집합의 행을 한번에 하나씩 검색할 수 있다.
- 복합 변수
- 복합 변수에는 개별적으로 액세스할 수 있는 내부 구성요소가 있다.
- 전체 복합 변수를 서브프로그램에 매개변수로 전달할 수 있다.
- 커서
- 제어문
- IF, LOOP 등을 사용하여 다양한 데이터 값에 대해 다양한 작업을 수행 가능하다.
- 쿼리결과 집합 처리
- 프로시저는 SQL 쿼리를 실행하고 결과 집합의 행을 한번에 하나씩 처리할 수 있다.
- 기본 루프와 개별 문을 통해 쿼리를 실행하고 결과를 검색해 처리를 완료하며 프로세스를 정밀하게 제어할 수 있다.
'데이터 엔지니어링 > SQL' 카테고리의 다른 글
[PL/SQL] 프로시저 언어 기초(1) (0) | 2023.11.02 |
---|---|
[PL/SQL] 프로시저란? 프로시저의 장/단점 (0) | 2023.10.31 |