組み込みのDBMS_ALERTパッケージは、アラートの登録、送信、および受信に使用できます。
サブプログラム
サブプログラム | 説明 |
REGISTERプロシージャ | 現在のセッションに指定されたアラートを登録します。 |
削除手順 | 指定されたアラートの通知を削除します。 |
REMOVEALLプロシージャ | 指定されたセッションのすべてのアラートを登録リストから削除します。 |
SET_DEFAULTSプロシージャ | ポーリング間隔を指定します。 |
SIGNALプロシージャ | アラート信号を送信します。 |
WAITANY手続き | 指定されたタイムアウト期間に達する前に、登録済みセッションからアラート通知の受信を待機します。 |
WAIToneプロシージャ | 指定されたタイムアウト期間に達する前に、指定されたアラートから通知を受け取るのを待ちます。 |
REGISTERプロシージャ
このストアドプロシージャは、現在のセッションに指定されたアラートを登録するために使用されます。
構文
<bx id="1" type="code" text="code id=" 4kauoe "title=" "uuid=" lir3jj3isfdrzwhsxya "code=" DBMS_ALERT.REGISTER ()
VARCHAR2の名前、クリーンアップIN BOOLEAN DEFAULT TRUE);"data-tag=" codeblock "outputclass=" language-postgresql ""/>DBMS_ALERT.REGISTER (
VARCHAR2の名前、
クリーンクリーンDEFAULT TRUE); Parameters
パラメーター | 説明 |
name | 登録されているアラートの名前。 |
cleanup | (オプション) DBMS_ALERTパッケージで使用される既存の分離パイプラインをクリーンアップするかどうかを指定します。 クリーニングプロセスは、REGISTER手順の最初の呼び出し中に1回だけ実行される。 デフォルト値は TRUE です。 |
例
次の例は、指定したアラートを登録する方法を示しています。
EXEC DBMS_ALERT.REGISTER('alert' 、TRUE);削除手順
このストアドプロシージャは、指定されたアラートの通知を削除するために使用されます。
構文
<bx id="1" type="code" text="code id=" 1hkigt "title=" "uuid=" lir3xbh5pbpyy5ncmpq "code=" DBMS_ALERT.REMOVE (
name IN VARCHAR2);"data-tag=" codeblock "outputclass=" language-postgresql ""/>DBMS_ALERT.REMOVE (
名前インVARCHAR2); Parameters
パラメーター | 説明 |
name | 登録リストから削除するアラートの名前。 |
例
次の例は、指定したアラートを削除する方法を示しています。
EXEC DBMS_ALERT.REMOVE('alert');REMOVEALLプロシージャ
このストアドプロシージャは、指定されたセッションのすべてのアラートを登録リストから削除するために使用されます。
構文
DBMS_ALERT.REMOVEALL;例
次の例は、REMOVEALLストアドプロシージャの使用方法を示しています。
EXEC DBMS_ALERT.REMOVEALL;SET_DEFAULTSプロシージャ
このストアドプロシージャは、ポーリング間隔を指定するために使用されます。
構文
<bx id="1" type="code" text="code id=" 7bwxvx "title=" "uuid=" lir45waefn4xtjigt7j "code=" DBMS_ALERT.SET_DEFAULTS (
"data-tag=" codeblock "outputclass=" language-postgresql ""/>DBMS_ALERT.SET_DEFAULTS ()
感度で数); Parameters
パラメーター | 説明 |
感度 | ポーリング間隔。 単位は秒です。 |
例
ポーリング間隔を指定する例を次に示します。
EXEC DBMS_ALERT.SER_DEFAULTS(0.0001);SIGNALプロシージャ
このストアドプロシージャは、指定された名前のアラートを生成するために使用されます。
構文
<bx id="1" type="code" text="code id=" kg91zr "title=" "uuid=" lir4d99ib916upozsrt "code=" DBMS_ALERT.SIGNAL ()
イベントIN VARCHAR2,
メッセージVARCHAR2);"data-tag=" codeblock "outputclass=" language-postgresql ""/>DBMS_ALERT.SIGNAL (
イベントIN VARCHAR2,
メッセージVARCHAR2); Parameters
パラメーター | 説明 |
event | 通知が送信されるアラートの名前。 |
message | アラートの詳細。 |
例
次の例は、アラート通知を送信する方法を示しています。
EXEC DBMS_ALERT.SIGNAL('alert' ,'This is a alert message.');WAITANY手続き
このストアドプロシージャは、指定されたタイムアウト期間に達する前に、登録済みセッションからアラート通知を受信するのを待つために使用されます。
構文
<bx id="1" type="code" text="code id=" gxdgze "title=" "uuuid=" lir4ikyfbmn8ncvabzv "code=" DBMS_ALERT.WAITANY ()
名OUT VARCHAR2、メッセージOUT VARCHAR2、ステータスOUT INTEGER,
NUMBER DEFAULT MAXWAITのタイムアウト);"data-tag=" codeblock "outputclass=" language-postgresql ""/>DBMS_ALERT.WAITANY (
名OUT VARCHAR2、
メッセージOUT VARCHAR2、
ステータスOUT INTEGER,
タイムアウト数デフォルトMAXWAIT; Parameters
パラメーター | 説明 |
name | 通知が送信されるアラートの名前。 |
message | アラートの詳細。 |
status | 返された状態コード。 有効な値:
|
timeout | アラートが生成されるまでの待機時間。 単位は秒です。 |
例
次の例は、2つのセッション間でアラート通知を転送する方法を示しています。
<bx id="1" type="code" text="code id=" phhsdf "title=" "uuid=" lir4lyzf2g1ib047p5b "code=" -- SESSION A: アラートを登録し、任意のアラートを待つ
DECLARE
名前VARCHAR2;
msg VARCHAR2;
ステータスINTEGER;
開始
DBMS_ALERT.REGISTER('alert' 、TRUE);
DBMS_ALERT.WAITANY(name、msg、status、10);
-- アラート名は: Alert
-- Alertメッセージは: テストからのメッセージです
-- Alertステータスは: 0
DBMS_OUTPUT.PUT_LINE('Alert name is: '| | name);
DBMS_OUTPUT.PUT_LINE('Alert message is: '| | msg);
DBMS_OUTPUT.PUT_LINE('Alert status is: '| | status);
エンド;
-- セッションB: 信号を送る
EXEC DBMS_ALERT.SIGNAL('alert' 、'This is a alert message.');"data-tag=" codeblock "outputclass=" language-postgresql ""/>-- SESSION A: アラートを登録し、任意のアラートを待つ
DECLARE
名前VARCHAR2;
msg VARCHAR2;
ステータスINTEGER;
開始
DBMS_ALERT.REGISTER('alert' 、TRUE);
DBMS_ALERT.WAITANY(name、msg、status、10);
-- アラート名は: Alert
-- Alertメッセージは: テストからのメッセージです
-- Alertステータスは: 0
DBMS_OUTPUT.PUT_LINE('Alert name is: '| | name);
DBMS_OUTPUT.PUT_LINE('Alert message is: '| | msg);
DBMS_OUTPUT.PUT_LINE('Alert status is: '| | status);
エンド;
-- セッションB: 信号を送る
EXEC DBMS_ALERT.SIGNAL('alert' 、'これはアラートメッセージです。'); WAITONEプロシージャ
このストアドプロシージャは、指定されたタイムアウト期間に達する前に、指定されたアラームから通知を受け取るのを待つために使用されます。
構文
<bx id="1" type="code" text="code id=" b0ilor "title=" "uuid=" lir4r9xvrlp3b5eh359 "code=" DBMS_ALERT.WAITONE ()
VARCHAR2の名前、メッセージOUT VARCHAR2、ステータスOUT INTEGER,
NUMBER DEFAULT MAXWAITのタイムアウト);"data-tag=" codeblock "outputclass=" language-postgresql ""/>DBMS_ALERT.WAITONE (
VARCHAR2の名前、
メッセージOUT VARCHAR2、
ステータスOUT INTEGER,
タイムアウト数デフォルトMAXWAIT; Parameters
パラメーター | 説明 |
name | 通知が送信されるアラートの名前。 |
message | アラートの詳細。 |
status | 返された状態コード。 有効な値:
|
timeout | アラートが生成されるまでの待機時間。 単位は秒です。 |
例
次の例は、指定された名前のアラートに対して通知が送信されない場合に返される結果を示しています。 指定された名前のアラートの通知が送信されたときに返されるサンプル結果の詳細については、「DBMS_ALERT」トピックのWAITANY手順セクションを参照してください。
<bx id="1" type="code" text="code code=" -- SESSION A: アラートを登録し、DECLARE
名前VARCHAR2;
msg VARCHAR2;
ステータスINTEGER;
タイムアウトINTEGER;
開始
DBMS_ALERT.REGISTER('alert' 、TRUE);
DBMS_ALERT.WAITONE('alert' 、msg、status、10);
-- Alertメッセージは: テストからのメッセージです
-- Alertステータスは: 0
DBMS_OUTPUT.PUT_LINE('Alert message is: '| | msg);
DBMS_OUTPUT.PUT_LINE('Alert status is: '| | status);
エンド;
-- セッションB: 信号を送る
EXEC DBMS_ALERT.SIGNAL('alert' 、'This is a alert message.');"id=" 0wxnta "title=" "uuuid=" lir4sls79hl27p1dswv "data-tag=" codeblock "outputputclass=" language-postgresql "" "/>
DECLARE
名前VARCHAR2;
msg VARCHAR2;
ステータスINTEGER;
タイムアウトINTEGER;
開始
DBMS_ALERT.REGISTER('alert' 、TRUE);
DBMS_ALERT.WAITONE('alert' 、msg、status、10);
-- Alertメッセージは: テストからのメッセージです
-- Alertステータスは: 0
DBMS_OUTPUT.PUT_LINE('Alert message is: '| | msg);
DBMS_OUTPUT.PUT_LINE('Alert status is: '| | status);
エンド;
-- セッションB: 信号を送る
EXEC DBMS_ALERT.SIGNAL('alert' 、'これはアラートメッセージです。');