登録

REGISTER プロシージャを使用して、アイテムがエンキューまたはデキューされるときに通知される電子メールアドレス、プロシージャ、またはURLを登録します。署名は次のとおりです。

REGISTER(
  <reg_list> IN SYS.AQ$_REG_INFO_LIST,
  <count> IN NUMBER)

Parameters

reg_list

reg_listAQ$_REG_INFO_LIST タイプのリストです。登録する各サブスクリプションに関する情報を提供します。リスト内の各エントリは AQ$_REG_INFO タイプであり、以下を含むことができます。

属性

種類

説明

name

VARCHAR2(128)

サブスクリプションの(オプションでスキーマ修飾された)名前。

namespace

数値

サポートされている値は DBMS_AQ.NAMESPACE_AQ (0) のみです

callback

VARCHAR2(4000)

通知時に実行されるアクションを説明します。現在、PL/SQLプロシージャのコールのみがサポートされています。呼び出しの形式は次のとおりです。

plsql://schema.procedure

どこで:

schemaは、プロシージャが存在するスキーマを指定します。

procedureは、通知されるプロシージャの名前を指定します。

context

RAW(16)

コールバックプロシージャに必要なユーザー定義の値。

count

countreg_list のエントリ数です。

Example

次の匿名ブロックは DBMS_AQ.REGISTER を呼び出し、アイテムがキューに追加またはキューから削除されたときに通知されるプロシージャを登録します。 DECLARE セクションで識別される各サブスクリプションに対して、属性セット( sys.aq$_reg_info タイプ)が提供されます。

DECLARE
   subscription1 sys.aq$_reg_info;
   subscription2 sys.aq$_reg_info;
   subscription3 sys.aq$_reg_info;
   subscriptionlist sys.aq$_reg_info_list;
BEGIN
   subscription1 := sys.aq$_reg_info('q', DBMS_AQ.NAMESPACE_AQ,
'plsql://assign_worker?PR=0',HEXTORAW('FFFF'));
   subscription2 := sys.aq$_reg_info('q', DBMS_AQ.NAMESPACE_AQ,
'plsql://add_to_history?PR=1',HEXTORAW('FFFF'));
   subscription3 := sys.aq$_reg_info('q', DBMS_AQ.NAMESPACE_AQ,
'plsql://reserve_parts?PR=2',HEXTORAW('FFFF'));

   subscriptionlist := sys.aq$_reg_info_list(subscription1,
subscription2, subscription3);
   dbms_aq.register(subscriptionlist, 3);
   commit;

  END;
   /

subscriptionlistsys.aq$_reg_info_list タイプで、前述の sys.aq$_reg_info オブジェクトが含まれています。リスト名とオブジェクト数は dbms_aq.register に渡されます。