본문 바로가기
IT/Database

PSM 이란?

by 성준하이 2023. 4. 3.
반응형

PSM 이란? 먼저 위키백과에서 소개하는 설명은 아래와 같다.

SQL/PSM(SQL/Persistent Stored Modules)은 주로 저장 프로시저에 사용하기 위해 절차적 언어로 SQL 확장을 정의해둔 ISO 표준이다.

https://ko.wikipedia.org/wiki/SQL/PSM

 

SQL/PSM - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. SQL/PSM(SQL/Persistent Stored Modules)은 주로 저장 프로시저에 사용하기 위해 절차적 언어로 SQL 확장을 정의해둔 ISO 표준이다. 1996년에 SQL-92(ISO/IEC 9075-4:1996, 가끔은 PSM-9

ko.wikipedia.org

 

좀더 부가 설명을 더하면

  • SQL에 프로그래밍 언어 설계 기능을 절차적으로 추가한 것
  • 데이터베이스에서 SQL에 대해 절차적 로직을 실행하는 방법을 제공하기 위해 개발한 절차적 언어
  • 데이터 캡슐화, 예외처리, 정보 숨김, 객체 지향 등의 기능 제공
  • SQL문을 블록구조 및 프로시저 단위 코드에 포함시킬 수 있는 강력한 트랜잭션 처리 언어
 
처리 과정은 다음과 같다.
  • 선행 컴파일러에서 PSM 블록(코드)를 제출하면, 서버 내의 PSM 엔진이 처리함
  • PSM엔진은 블록 내의 SQL문을 분리하여 하나씩 SQL문 실행자로 전송 함
  • PSM 코드는 서버에 저장할 수 있으며 이를 Stored 로 부른다 -> stored procedure
 
아래는 PSM 블록 구조이다.
DECLARE
변수 선언문;
BEGIN
프로그램 코드; (-> 커서 구문 -> OPEN / FETCH / CLOSE)
EXCEPTION
예외 처리문;
END;
 
변수 선언문 ->  블럭에서 사용할 변수 정의. 커서 정의와 중첩된 프로시저 및 함수도 여기서 정의
프로그램 코드 ->  블럭을 구성하는 psm문
예외 처리문 ->  런타임 오류나 예외 발생시 트리거 되는 프로그램 코드
 
주의할 점이 있다.
각 블럭에서 문장의 끝을 알리기 위해 반드시 ;을 붙여야 하고, 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

댓글