HPL/SQL - SIGNAL 문

HPL/SQL - SIGNAL 문

SIGNAL 문은 사용자가 정의한 조건(예외)을 일부러 발생시킬 때 사용해요. 비즈니스 규칙에 맞지 않는 상황을 오류로 처리하고 싶을 때 유용해요.

출처: 문서

본문

SIGNAL 문은 사용자 정의 조건(예외)을 발생시킵니다.

구문:

SIGNAL condition_name;

예제:

행 개수가 지정된 숫자와 다르면 조건을 발생시키기:

DECLARE cnt INT DEFAULT 0; 
DECLARE wrong_cnt_condition CONDITION;

DECLARE EXIT HANDLER FOR wrong_cnt_condition
  PRINT 'Wrong number of rows';  

SELECT COUNT(*) INTO cnt FROM TABLE (VALUES (1,2));

IF cnt <> 1 THEN
  SIGNAL wrong_cnt_condition;
END IF;

호환성: IBM DB2, Teradata, MySQL

같이 보기:

더 알아보기 (Learn more)

SIGNAL로 예외를 던지면 이에 대응하는 DECLARE HANDLER가 실행돼요. 예외를 다시 발생시키고 싶을 때는 RESIGNAL을 쓰고, 예외 세부 내용을 가져오려면 GET DIAGNOSTICS를 활용해요.