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プロシージャは、取得プロセスが作成されるときに自動的に実行できます。