반응형
PSM 이란? 먼저 위키백과에서 소개하는 설명은 아래와 같다.
SQL/PSM(SQL/Persistent Stored Modules)은 주로 저장 프로시저에 사용하기 위해 절차적 언어로 SQL 확장을 정의해둔 ISO 표준이다.
https://ko.wikipedia.org/wiki/SQL/PSM
좀더 부가 설명을 더하면
- SQL에 프로그래밍 언어 설계 기능을 절차적으로 추가한 것
- 데이터베이스에서 SQL에 대해 절차적 로직을 실행하는 방법을 제공하기 위해 개발한 절차적 언어
- 데이터 캡슐화, 예외처리, 정보 숨김, 객체 지향 등의 기능 제공
- SQL문을 블록구조 및 프로시저 단위 코드에 포함시킬 수 있는 강력한 트랜잭션 처리 언어
처리 과정은 다음과 같다.
- 선행 컴파일러에서 PSM 블록(코드)를 제출하면, 서버 내의 PSM 엔진이 처리함
- PSM엔진은 블록 내의 SQL문을 분리하여 하나씩 SQL문 실행자로 전송 함
- PSM 코드는 서버에 저장할 수 있으며 이를 Stored 로 부른다 -> stored procedure
아래는 PSM 블록 구조이다.
DECLARE
변수 선언문;
BEGIN
프로그램 코드; (-> 커서 구문 -> OPEN / FETCH / CLOSE)
EXCEPTION
예외 처리문;
END;
변수 선언문 -> 블럭에서 사용할 변수 정의. 커서 정의와 중첩된 프로시저 및 함수도 여기서 정의
프로그램 코드 -> 블럭을 구성하는 psm문
예외 처리문 -> 런타임 오류나 예외 발생시 트리거 되는 프로그램 코드
주의할 점이 있다.
각 블럭에서 문장의 끝을 알리기 위해 반드시 ;을 붙여야 하고, begin내에 다른 블럭을 내포할 수 있다
각 블럭에서 문장의 끝을 알리기 위해 반드시 ;을 붙여야 하고, begin내에 다른 블럭을 내포할 수 있다
반응형
'IT > Database' 카테고리의 다른 글
[Tibero] view / procedure 조회 (12) | 2023.04.22 |
---|---|
rownum 과 limit 의 차이 (12) | 2023.04.14 |
[Oracle] procedure 조회 (36) | 2023.04.01 |
프로시저 / 함수 선언법 (21) | 2023.03.31 |
H2 Database 란? (in Spring) (68) | 2023.03.05 |
댓글