164 DBMS_STREAMS
DBMS_STREAMS
パッケージ(Oracle Streamsパッケージのセットの1つ)は、ANYDATA
オブジェクトを論理変更レコード(LCR)に変換し、Oracle Streams属性およびOracle Streamsクライアントに関する情報を戻し、セッションで生成されたREDOエントリにバイナリ・タグで注釈を付けるためのサブプログラムを提供します。
このタグは、REDOエントリまたはLCRのバイナリ・タグに対する仕様を含んだルールを持つ、取得プロセス、伝播または適用プロセスの動作に影響を与えます。
この章のトピックは、次のとおりです:
164.1 DBMS_STREAMSの概要
このパッケージは、ANYDATA
オブジェクトを論理変更レコード(LCR)に変換し、Oracle Streams属性およびOracle Streamsクライアントに関する情報を戻し、セッションで生成されたREDOエントリにバイナリ・タグで注釈を付けるためのサブプログラムを提供します。
このタグは、REDOエントリまたはLCRのバイナリ・タグに対する仕様を含んだルールを持つ、取得プロセス、伝播または適用プロセスの動作に影響を与えます。
参照:
このパッケージおよびOracle Streamsの詳細は、『Oracle Streams概要および管理』および『Oracle Streamsレプリケーション管理者ガイド』を参照してください。
164.2 DBMS_STREAMSのセキュリティ・モデル
PUBLIC
には、このパッケージのEXECUTE
権限が付与されます。
参照:
ユーザー・グループPUBLIC
の詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
164.3 DBMS_STREAMSサブプログラムの要約
この表は、DBMS_STREAMS
サブプログラムを示し、簡単に説明しています。
表164-1 DBMS_STREAMSパッケージのサブプログラム
サブプログラム | 説明 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
論理変更レコード(LCR)用のXMLスキーマに準拠するXMLオブジェクトを、 |
|
様々なOracle Streams属性に関する情報を戻します。 |
|
実行者の名前を戻します。 |
|
実行者のタイプを戻します。 |
|
現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。 |
|
Oracle Databaseの現行リリースに対して可能な最大互換性定数よりも大きい整数を戻します。 |
|
現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。 |
ノート:
このパッケージのサブプログラムはコミットしません。
164.3.1 COMPATIBLE_12_2ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_12_2
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_12_2 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの12.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.2 COMPATIBLE_12_1ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_12_1
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_12_1 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの12.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.3 COMPATIBLE_11_2ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_11_2
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_11_2 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの11.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.4 COMPATIBLE_11_1ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_11_1
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_11_1 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの11.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.5 COMPATIBLE_10_2ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_10_2
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_10_2 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの10.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.6 COMPATIBLE_10_1ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_10_1
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_10_1 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの10.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.7 COMPATIBLE_9_2ファンクション
このファンクションは、DBMS_STREAMS.COMPATIBLE_9_2
定数を戻します。
構文
DBMS_STREAMS.COMPATIBLE_9_2 RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
このファンクションによって戻される定数値は、データベースの9.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE
初期化パラメータを使用して制御します。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.8 CONVERT_ANYDATA_TO_LCR_DDLファンクション
このファンクションは、ANYDATA
オブジェクトをSYS.LCR$_DDL_RECORD
オブジェクトに変換します。
構文
DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_DDL( source IN ANYDATA) RETURN SYS.LCR$_DDL_RECORD;
パラメータ
表164-2 CONVERT_ANYDATA_TO_LCR_DDLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
使用上のノート
DBMS_TRANSFORM
パッケージのCREATE_TRANSFORMATION
プロシージャで作成される変換で、このファンクションを使用することもできます。ANYDATA
キューからSYS.LCR$_DDL_RECORD
タイプのキューにDDLのLCRを伝播するサブスクライバを追加するときに作成する変換を使用してください。
164.3.9 CONVERT_ANYDATA_TO_LCR_ROWファンクション
このファンクションは、ANYDATA
オブジェクトをSYS.LCR$_ROW_RECORD
オブジェクトに変換します。
構文
DBMS_STREAMS.CONVERT_ANYDATA_TO_LCR_ROW( source IN ANYDATA) RETURN SYS.LCR$_ROW_RECORD;
パラメータ
表164-3 CONVERT_ANYDATA_TO_LCR_ROWファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換する |
使用上のノート
DBMS_TRANSFORM
パッケージのCREATE_TRANSFORMATION
プロシージャで作成される変換で、このファンクションを使用することもできます。ANYDATA
キューからSYS.LCR$_ROW_RECORD
タイプのキューに行LCRを伝播するサブスクライバを追加するときに作成する変換を使用してください。
164.3.10 CONVERT_LCR_TO_XMLファンクション
このファンクションは、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;
パラメータ
表164-4 CONVERT_LCR_TO_XMLファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
|
164.3.11 CONVERT_XML_TO_LCRファンクション
このファンクションは、論理変更レコード(LCR)用のXMLスキーマに準拠するXMLオブジェクトを、ANYDATA
オブジェクト内でカプセル化されたLCRに変換します。LCRには、行またはDDL LCRを指定できます。
参照:
LCR用のXMLスキーマの詳細は、『Oracle Streams概要および管理』を参照してください。
構文
DBMS_STREAMS.CONVERT_XML_TO_LCR( xmldat IN SYS.XMLTYPE) RETURN ANYDATA;
パラメータ
表164-5 CONVERT_XML_TO_LCRファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
変換するXML LCRオブジェクト。このオブジェクトがLCR用のXMLスキーマに準拠しない場合は、例外が発生します。 |
164.3.12 GET_INFORMATIONファンクション
このファンクションは、様々なOracle Streams属性に関する情報を戻します。
構文
DBMS_STREAMS.GET_INFORMATION( name IN VARCHAR2) RETURN ANYDATA;
パラメータ
表164-6 GET_INFORMATIONファンクションのパラメータ
パラメータ | 説明 |
---|---|
|
取得する情報のタイプ。現在、次の指定が可能です。
|
164.3.13 GET_STREAMS_NAMEファンクション
実行者がOracle StreamsタイプのCAPTURE
、APPLY
またはERROR_EXECUTION
のいずれかである場合、このファンクションは実行者のOracle Streams名を取得します。
実行者がこれらのタイプに該当しない場合、このファンクションはNULL
を返します。
構文
DBMS_STREAMS.GET_STREAMS_NAME RETURN VARCHAR2;
使用上のノート
ルール条件、ルール・ベースの変換、適用ハンドラおよびエラー・ハンドラにおいて、このファンクションを使用できます。たとえば、複数の適用プロセスに1つのエラー・ハンドラを使用する場合、GET_STREAMS_NAME
ファンクションを使用して、エラーを発生する適用プロセスの名前を指定できます。
164.3.14 GET_STREAMS_TYPEファンクション
このファンクションは実行者のOracle Streamsタイプを取得し、CAPTURE
、APPLY
またはERROR_EXECUTION
のタイプのいずれかを返します。
実行者がこれらのタイプに該当しない場合、このファンクションはNULL
を返します。
構文
DBMS_STREAMS.GET_STREAMS_TYPE RETURN VARCHAR2;
使用上のノート
ルール条件、ルール・ベースの変換、適用ハンドラおよびエラー・ハンドラにおいて、このファンクションを使用できます。たとえば、適用プロセスのキュー(APPLY
タイプ)ではなく、エラー・キュー(ERROR_EXECUTION
タイプ)のメッセージを処理している場合、GET_STREAMS_TYPE
ファンクションを使用して、プロシージャDMLハンドラの操作内容を変更できます。
164.3.15 GET_TAGファンクション
このファンクションは、現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。
ノート:
-
このファンクションを実行するには、
DBMS_STREAMS_ADM
パッケージに対するEXECUTE_CATALOG_ROLE
またはEXECUTE
権限をユーザーに付与する必要があります。 -
DBMS_STREAMS.GET_TAG
ファンクションを使用するかわりに、DBMS_STREAMS_ADM.GET_TAG
ファンクションを使用することをお薦めします。GET_TAGファンクションを参照してください。
参照:
タグの詳細は、『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;
164.3.16 MAX_COMPATIBLEファンクション
このファンクションは、Oracle Databaseの現行リリースに対して可能な最大互換性定数よりも大きい整数を戻します。
構文
DBMS_STREAMS.MAX_COMPATIBLE RETURN INTEGER;
使用上のノート
このファンクションを論理変更レコード(LCR)のGET_COMPATIBLE
メンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。
MAX_COMPATIBLE
ファンクションは常に、このファンクションが実行されるOracle Databaseのリリースに対する最大互換性を戻します。そのため、ルール条件でこのファンクションを使用する場合は、Oracle Databaseの最新リリースにアップグレードする際にルール条件を変更する必要がありません。
参照:
-
Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。
-
COMPATIBLE
初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。
164.3.17 SET_TAGプロシージャ
このプロシージャは、現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。
現行セッションのDML文またはDDL文によって生成される各REDOエントリには、このタグが含まれます。このプロシージャの影響があるのは、現行のセッションのみです。
ノート:
-
このプロシージャを実行するには、
DBMS_STREAMS_ADM
パッケージに対するEXECUTE_CATALOG_ROLE
またはEXECUTE
権限をユーザーに付与する必要があります。 -
DBMS_STREAMS.SET_TAG
プロシージャを使用するかわりに、DBMS_STREAMS_ADM.SET_TAG
プロシージャを使用することをお薦めします。SET_TAGプロシージャを参照してください。
参照:
タグの詳細は、『Oracle Streamsレプリケーション管理者ガイド』を参照してください。
構文
DBMS_STREAMS.SET_TAG( tag IN RAW DEFAULT NULL);
パラメータ
表164-7 SET_TAGプロシージャのパラメータ
パラメータ | 説明 |
---|---|
|
現行のセッションで継続して生成されるREDOエントリすべてに対するバイナリ・タグ。RAW値は一連のバイトで、バイトは一連のビットです。 デフォルトでは、セッションのタグは タグ値のサイズ制限は、2000バイトです。 |
使用上のノート
現行のセッションでタグを16進数値の'17'
に設定するには、次のプロシージャを実行します。
EXEC DBMS_STREAMS.SET_TAG(tag => HEXTORAW('17'));
SET_TAG
プロシージャでは、次の点に注意してください。
-
このプロシージャはトランザクション型ではありません。つまり、
SET_TAG
の結果はロールバックできません。 -
データベースでデータ・ディクショナリの構築を実行する前に、
SET_TAG
プロシージャを実行してNULL
以外のセッション・タグを設定した場合、ディクショナリの構築前に開始したトランザクションのREDOエントリに、セッションに指定したタグ値が含まれないことがあります。そのため、データ・ディクショナリの構築は、セッションでSET_TAG
プロシージャを使用する前に実行します。データ・ディクショナリは、DBMS_CAPTURE_ADM.BUILD
プロシージャを実行すると構築されます。BUILD
プロシージャは、取得プロセスの作成時に自動的に実行できます。
参照: