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 );