콘텐츠로 이동

DBMS ALERT

DBMS_ALERT#

DBMS_ALERT 패키지는 데이터베이스에 발생하는 이벤트를 다른 사용자에게 알리는 기능이며 인터페이스 형태로 지원한다.

프로시저 및 함수 설명
REGISTER 알람을 등록한다.
REMOVE_EVENT 특정 알람을 해제한다..
REMOVEALL 모든 알람을 해제한다.
SET_DEFAULTS 알람의 대기 시간을 설정한다.
SIGNAL 알람에게 신호를 전달한다.
WAITANY 모든 알람을 대기한다.
WAITONE 특정 알람을 대기한다.

REGISTER#

알람을 등록한다.

구문#

DBMS_ALERT.REGISTER( name );

파라미터#

이름 입출력 데이터 타입 설명
name IN VARCHAR2(30) 알람 이름

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

iSQL> EXEC DBMS_ALERT.REGISTER ('S1');

REMOVE_EVENT#

등록되어 있는 특정 알람을 해제한다. 해제된 알람은 신호를 받을 수 없다.

구문#

DBMS_ALERT.REMOVE_EVENT( name );

파라미터#

이름 입출력 데이터 타입 설명
name IN VARCHAR2(30) 알람 이름

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

iSQL> EXEC DBMS_ALERT.REMOVE_EVENT ('S1');

REMOVEALL#

등록되어 있는 모든 알람을 해제한다. 해제된 알람은 신호를 받을 수 없다.

구문#

DBMS_ALERT.REMOVEALL();

파라미터#

없음

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

EXEC DBMS_ALERT.REMOVEALL ();

SET_DEFAULTS#

알람이 기다리는 시간을 설정한다.

구문#

DBMS_ALERT.SET_DEFAULTS( poll_interval );

파라미터#

이름 입출력 데이터 타입 설명
poll_interval IN INTEGER 알람의 대기 시간 (단위: 초)

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

EXEC DBMS_ALERT.SET_DEFAULTS (5);

SIGNAL#

알람에게 메시지가 포함된 신호를 보낸다. 신호를 여러 번 보낼 수 있다. 등록된 알람만 신호를 받을 수 있다.

구문#

DBMS_ALERT.SIGNAL( name, message );

파라미터#

이름 입출력 데이터 타입 설명
name IN VARCHAR2(30) 알람 이름
message IN VARCHAR2(1800) 메시지

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

EXEC DBMS_ALERT.SIGNAL ('S1', 'MESSAGE 001');

WAITANY#

모든 알람이 신호를 기다린다. 등록되어 있는 알람만 신호를 받을 수 있으며, 신호를 받지 않은 상태에서 일정시간(timeout)이 지나면 프로시저가 종료된다.

구문#

DBMS_ALERT.WAITANY( name, message, status, timeout );

파라미터#

이름 입출력 데이터 타입 설명
name OUT VARCHAR2(30) 알람 이름
message OUT VARCHAR2(1800) 메시지
status OUT INTEGER 상태 (성공: 0, 실패: 1)
timeout IN INTEGER 알람의 대기 시간(Timeout) (단위: 초)

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

VAR MESSAGE VARCHAR (1800);
VAR STATUS INTEGER;
EXEC DBMS_ALERT.WAITANY ( :NAME, :MESSAGE, :STATUS, 5 );

WAITONE#

특정 알람이 신호를 기다린다. 등록되어 있는 알람만 신호를 받을 수 있으며, 신호를 받지 않은 상태에서 일정시간(timeout)이 지나면 프로시저가 종료된다.

구문#

DBMS_ALERT.WAITONE( name, message, status, timeout );

파라미터#

이름 입출력 데이터 타입 설명
name OUT VARCHAR2(30) 알람 이름
message OUT VARCHAR2(1800) 메시지
status OUT INTEGER 상태 (성공: 0, 실패: 1)
timeout IN INTEGER 알람의 대기 시간(Timeout) (단위: 초)

결과값#

없음

예외#

예외를 발생시키지 않는다.

예제#

VAR NAME VARCHAR (30);
VAR MESSAGE VARCHAR (1800);
VAR STATUS INTEGER;
EXEC :name := 'S1';
EXEC DBMS_ALERT.WAITONE ( :NAME, :MESSAGE, :STATUS, 5 );