DBMS_STREAMS
パッケージ(Oracle Streamsパッケージのセットの1つ)は、ANYDATA
オブジェクトを論理変更レコード(LCR)に変換し、Oracle Streams属性およびOracle Streamsクライアントに関する情報を戻し、セッションで生成されたREDOエントリにバイナリ・タグで注釈を付けるためのサブプログラムを提供します。このタグは、REDOエントリまたはLCRのバイナリ・タグに対する仕様を含んだルールを持つ、取得プロセス、伝播または適用プロセスの動作に影響を与えます。
関連項目: このパッケージおよびOracle Streamsの詳細は、『Oracle Streams概要および管理』および『Oracle Streamsレプリケーション管理者ガイド』を参照してください。 |
この章では、次の項目について説明します。
セキュリティ・モデル
この項では、DBMS_STREAMS
パッケージの使用に関連する項目について説明します。
ユーザー・グループPUBLIC
には、このパッケージのEXECUTE
権限が付与されます。
関連項目: ユーザー・グループPUBLIC の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。 |
表129-1 DBMS_STREAMSパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
|
|
|
|
CONVERT_ANYDATA_TO_LCR_DDLファンクション |
|
CONVERT_ANYDATA_TO_LCR_ROWファンクション |
|
|
|
|
論理変更レコード(LCR)用のXMLスキーマに準拠するXMLオブジェクトを、 |
|
様々なOracle Streams属性に関する情報を戻します。 |
|
実行者の名前を戻します。 |
|
実行者のタイプを戻します。 |
|
現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。 |
|
現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。 |
注意: このパッケージのサブプログラムはコミットしません。 |
このファンクションは、DBMS_STREAMS.COMPATIBLE_11_1
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_11_1 RETURN INTEGER;
使用上の注意
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの11.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
関連項目:
|
このファンクションは、DBMS_STREAMS.COMPATIBLE_10_2
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_10_2 RETURN INTEGER;
使用上の注意
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの10.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
関連項目:
|
このファンクションは、DBMS_STREAMS.COMPATIBLE_10_1
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_10_1 RETURN INTEGER;
使用上の注意
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの10.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
関連項目:
|
このファンクションは、DBMS_STREAMS.COMPATIBLE_9_2
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_9_2 RETURN INTEGER;
使用上の注意
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの9.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
関連項目:
|
このファンクションは、ANYDATA
オブジェクトをSYS.LCR$_DDL_RECORD
オブジェクトに変換します。
構文
DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_DDL( source IN ANYDATA) RETURN SYS.LCR$_DDL_RECORD;
パラメータ
表129-2 CONVERT_ANYDATA_TO_LCR_DDLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
使用上の注意
DBMS_TRANSFORM
パッケージのCREATE_TRANSFORMATION
プロシージャで作成される変換で、このファンクションを使用することもできます。 ANYDATA
キューからSYS.LCR$_DDL_RECORD
タイプのキューにDDLのLCRを伝播するサブスクライバを追加するときに作成する変換を使用してください。
関連項目: このファンクションの詳細は、『Oracle Streams概要および管理』を参照してください。 |
このファンクションは、ANYDATA
オブジェクトをSYS.LCR$_ROW_RECORD
オブジェクトに変換します。
構文
DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_ROW( source IN ANYDATA) RETURN SYS.LCR$_ROW_RECORD;
パラメータ
表129-3 CONVERT_ANYDATA_TO_LCR_ROWファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
使用上の注意
DBMS_TRANSFORM
パッケージのCREATE_TRANSFORMATION
プロシージャで作成される変換で、このファンクションを使用することもできます。 ANYDATA
キューからSYS.LCR$_ROW_RECORD
タイプのキューに行LCRを伝播するサブスクライバを追加するときに作成する変換を使用してください。
関連項目: このファンクションの詳細は、『Oracle Streams概要および管理』を参照してください。 |
このファンクションは、ANYDATA
オブジェクト内でカプセル化された論理変更レコード(LCR)を、LCR用のXMLスキーマに準拠するXMLオブジェクトに変換します。LCRには、行LCRまたはDDL LCRを指定できます。
関連項目: LCR用のXMLスキーマの詳細は、『Oracle Streams概要および管理』を参照してください。 |
構文
DBMS_STREAMS.CONVERT_LCR_TO_XML( anylcr IN ANYDATA) RETURN SYS.XMLTYPE;
パラメータ
表129-4 CONVERT_LCR_TO_XMLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
このファンクションは、論理変更レコード(LCR)用のXMLスキーマに準拠するXMLオブジェクトを、ANYDATA
オブジェクト内でカプセル化されたLCRに変換します。LCRには、行またはDDL LCRを指定できます。
関連項目: LCR用のXMLスキーマの詳細は、『Oracle Streams概要および管理』を参照してください。 |
構文
DBMS_STREAMS.CONVERT_XML_TO_LCR( xmldat IN SYS.XMLTYPE) RETURN ANYDATA;
パラメータ
表129-5 CONVERT_XML_TO_LCRファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換するXML LCRオブジェクト。このオブジェクトがLCR用のXMLスキーマに準拠しない場合は、例外が発生します。 |
このファンクションは、様々なOracle Streams属性に関する情報を戻します。
構文
DBMS_STREAMS.GET_INFORMATION( name IN VARCHAR2) RETURN ANYDATA;
パラメータ
表129-6 GET_INFORMATIONファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
取得する情報のタイプ。現在、次の指定が可能です。
|
実行者が次のOracle Streamsタイプのいずれかである場合、このファンクションは実行者のOracle Streams名を取得します。
CAPTURE
APPLY
ERROR_EXECUTION
実行者がこれらのタイプに該当しない場合、このファンクションはNULL
を返します。
構文
DBMS_STREAMS.GET_STREAMS_NAME RETURN VARCHAR2;
使用上の注意
ルール条件、ルール・ベースの変換、適用ハンドラおよびエラー・ハンドラにおいて、このファンクションを使用できます。 たとえば、複数の適用プロセスに1つのエラー・ハンドラを使用する場合、GET_STREAMS_NAME
ファンクションを使用して、エラーを発生する適用プロセスの名前を指定できます。
このファンクションは実行者のOracle Streamsタイプを取得し、次のタイプのいずれかを返します。
CAPTURE
APPLY
ERROR_EXECUTION
実行者がこれらのタイプに該当しない場合、このファンクションはNULL
を返します。
構文
DBMS_STREAMS.GET_STREAMS_TYPE RETURN VARCHAR2;
使用上の注意
ルール条件、ルール・ベースの変換、適用ハンドラおよびエラー・ハンドラにおいて、このファンクションを使用できます。 たとえば、適用プロセス・キュー(APPLY
タイプ)ではなく、エラー・キュー(ERROR_EXECUTION
タイプ)のメッセージを処理している場合、GET_STREAMS_TYPE
ファンクションを使用して、DMLハンドラの操作内容を変更できます。
このファンクションは、現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。
関連項目: タグの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。 |
構文
DBMS_STREAMS.GET_TAG RETURN RAW;
例
次の例は、現行の論理変更レコード(LCR)タグを出力として表示する方法を示しています。
SET SERVEROUTPUT ON DECLARE raw_tag RAW(2000); BEGIN raw_tag := DBMS_STREAMS.GET_TAG(); DBMS_OUTPUT.PUT_LINE('Tag Value = ' || RAWTOHEX(raw_tag)); END; /
DUAL
ビューを問い合せて値を表示することもできます。
SELECT DBMS_STREAMS.GET_TAG FROM DUAL;
このプロシージャは、現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。現行セッションのDML文またはDDL文によって生成される各REDOエントリには、このタグが含まれます。このプロシージャの影響があるのは、現行のセッションのみです。
関連項目: タグの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。 |
構文
DBMS_STREAMS.SET_TAG( tag IN RAW DEFAULT NULL);
パラメータ
表129-7 SET_TAGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現行のセッションで継続して生成されるREDOエントリすべてに対するバイナリ・タグ。RAW値は一連のバイトで、バイトは一連のビットです。 デフォルトでは、セッションのタグは タグ値のサイズ制限は、2000バイトです。 |
使用上の注意
現行のセッションでタグを16進数値の'17'
に設定するには、次のプロシージャを実行します。
EXEC DBMS_STREAMS.SET_TAG(tag => HEXTORAW('17'));
SET_TAG
プロシージャでは、次の点に注意してください。
このプロシージャはトランザクション型ではありません。 つまり、SET_TAG
の結果はロールバックできません。
データベースでデータ・ディクショナリの構築が実行される前に、NULL
ではないセッション・タグを設定するためにSET_TAG
プロシージャが実行された場合、ディクショナリの構築の前に開始されたトランザクションのREDOエントリに、セッションに対して指定したタグ値が含まれない場合があります。 そのため、セッションでSET_TAG
プロシージャを使用する前に、データ・ディクショナリの構築を実行します。 データ・ディクショナリの構築は、DBMS_CAPTURE_ADM.BUILD
プロシージャの実行されるときに発生します。BUILD
プロシージャは、取得プロセスが作成されるときに自動的に実行できます。