더북(TheBook)

PRAGMA 키워드

PRAGMA란 다른 프로그래밍 언어에서도 사용되는데, 컴파일러가 실행되기 전에 처리하는 전처리기 역할을 한다. PRAGMA를 사용하면 컴파일러는 런타임 때와는 다른 결과를 내도록 동작한다. 즉 컴파일할 때 뭔가를 처리하라고 컴파일러에게 지시하는 역할을 하는데, PL/SQL 블록의 선언부에 명시하며 사용법은 다음과 같다.

① PRAGMA AUTONOMOUS_TRANSACTION

트랜잭션 처리를 담당하는데, 주 트랜잭션이나 다른 트랜잭션에 영향을 받지 않고 독립적으로 현재 블록 내부에서 데이터베이스에 가해진 변경사항을 COMMIT이나 ROLLBACK 하라는 지시를 하는 역할을 한다.

② PRAGMA EXCEPTION_INIT(예외명, 예외번호)

사용자 정의 예외 처리를 할 때 사용되는데, 특정 예외번호를 명시해서 컴파일러에 이 예외를 사용한다는 것을 알리는 역할을 한다.

③ PRAGMA RESTRICT_REFERECES (서브 프로그램명, 옵션)

오라클 패키지를 사용할 때 선언해 놓으면 패키지에 속한 서브 프로그램(주로 함수에 사용)에서 옵션 값에 따라 특정 동작을 제한할 때 사용된다. 예를 들어, RNDS란 옵션을 주면 해당 서브 프로그램에서 테이블 데이터 쿼리를 제한하고, WNDS 옵션을 주면 테이블 데이터를 조작하지 못한다.

④ PRAGMA SERIALLY_RESUABLE

패키지 메모리 관리를 쉽게 할 목적으로 사용되며, 패키지에 선언된 변수에 대해 한 번 호출된 후 메모리를 해제시킨다. 즉 이 옵션을 설정하면 패키지 변수에 값을 할당하더라도 다음 번에 호출할 때는 할당한 값에 대한 메모리를 해제시켜 해당 변수는 초기화 값이나 NULL 값이 된다.

네 가지 옵션 중 ③번 옵션은 현장에서 사용빈도가 그리 높지 않으므로 이 정도 소개하는 선에서 마무리 짓고, ①, ②, ④번에 대해서는 이후에 다시 자세히 다루도록 하겠다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.