데이터 엔지니어링/SQL

[PL/SQL] 프로시저의 주요 기능

안용감한호랑이 2023. 11. 1. 01:51

[데이터 엔지니어링/SQL] - [PL/SQL] 프로시저란? 프로시저의 장/단점

 

[PL/SQL] 프로시저란? 프로시저의 장/단점

해당 글은 Oracle의 공식 Document를 보고 작성하였습니다. 경로 프로시저란? 프로시저는 SQL을 확장하여 고성능의 트랜잭션 처리 언어이다. 즉 트랜잭션의 특징인 원자성, 일관성, 독립성, 영속성을

dog-foot-writen.tistory.com

 

프로시저는 데이터 조작 능력과 절차적 언어의 처리 능력을 결합하여 SQL 문제를 해결할 수 있다면 새로운 API를 배우지 않고 프로시저로 SQL을 실행할 수 있다.

다른 절차적 프로그래밍 언어와 마찬가지로 상수와 변수를 선언하고 프로그램 흐름을 제어하며, 하위 프로그램을 정의하고 런타임 오류를 잡을 수 있다.

 

 

 

주요 기능

  1. 오류처리
    • 프로시저를 사용하면 오류를 쉽게 감지하고 처리할 수 있다.
    • 프로시저는 오류 발생 시 예외를 발생시키며 정상적인 실행이 중지되고 블록의 예외 처리 부분으로 이전된다.
  2. 블록
    • 프로시저의 기본 단위는 선언(DECLARE)과 명령문을 그룹화 하는 블록이다.
    • 프로시저의 블록은 DECLARE, BEGIN, EXCEPTION, END Z키워드에 의해 정의된다.
    • DECLARATION은 블록에 로컬로 적용되며 블록이 수행완료 되면 더이상 존재하지 않는다.
    • 블록은 중첩될 수 있다.
  3. 변수와 상수
    • 프로시저는 변수와 상수를 선언한 다음 표현식을 사용할 수 있는 곳 어디에서나 사용할 수 있다.
    • 변수 값은 변경될 수 있지만 상수 값은 변경할 수 없다.
  4. 서브 프로그램
    • 프로시저의 서브 프로그램은 반복적으로 호출할 수 있는 프로시저 블록이다.
    • 서브 프로그램에 매개변수가 있는 경우 해당 값은 호출할 때마다 다를 수 있다.
  5. 트리거
    • 트리거는 데이터베이스에 저장되고 데이터베이스에서 발생하는 이벤트에 대한 응답으로 실행되는 프로시저이다.
    • 이벤트 전후에 트리거가 발생할지 여부, 영향을 받는 각 행에 대해 트리거가 실행될지 여부를 지정할 수 있다.
  6. 입출력
    • 프로시저의 대부분은 데이터베이스 테이블에 데이터를 저장하거나 해당 테이블을 쿼리하는 SQL문으로 수행된다.
  7. 데이터 추상화
    • 커서
      • 커서는 특정 SQL문이나 프로시저 처리에 대한 정보를 저장하는 SQL영역에 대한 포인터이다.
      • 커서를 사용하여 결과 집합의 행을 한번에 하나씩 검색할 수 있다.
    • 복합 변수
      • 복합 변수에는 개별적으로 액세스할 수 있는 내부 구성요소가 있다.
      • 전체 복합 변수를 서브프로그램에 매개변수로 전달할 수 있다.
  8. 제어문
    • IF, LOOP 등을 사용하여 다양한 데이터 값에 대해 다양한 작업을 수행 가능하다.
  9. 쿼리결과 집합 처리
    • 프로시저는 SQL 쿼리를 실행하고 결과 집합의 행을 한번에 하나씩 처리할 수 있다.
    • 기본 루프와 개별 문을 통해 쿼리를 실행하고 결과를 검색해 처리를 완료하며 프로세스를 정밀하게 제어할 수 있다.