ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

144 DBMS_STREAMS

DBMS_STREAMSパッケージ(Oracle Streamsパッケージのセットの1つ)は、ANYDATAオブジェクトを論理変更レコード(LCR)に変換し、Oracle Streams属性およびOracle Streamsクライアントに関する情報を戻し、セッションで生成されたREDOエントリにバイナリ・タグで注釈を付けるためのサブプログラムを提供します。このタグは、REDOエントリまたはLCRのバイナリ・タグに対する仕様を含んだルールを持つ、取得プロセス、伝播または適用プロセスの動作に影響を与えます。 

この章では、次の項目について説明します。


DBMS_STREAMSの使用方法

この項では、DBMS_STREAMSパッケージの使用に関連する項目について説明します。


概要

このパッケージは、ANYDATAオブジェクトを論理変更レコード(LCR)に変換し、Oracle Streams属性およびOracle Streamsクライアントに関する情報を戻し、セッションで生成されたREDOエントリにバイナリ・タグで注釈を付けるためのサブプログラムを提供します。このタグは、REDOエントリまたはLCRのバイナリ・タグに対する仕様を含んだルールを持つ、取得プロセス、伝播または適用プロセスの動作に影響を与えます。 


関連項目:

このパッケージおよびOracle Streamsの詳細は、『Oracle Streams概要および管理』および『Oracle Streamsレプリケーション管理者ガイド』を参照してください。


セキュリティ・モデル

PUBLICには、このパッケージのEXECUTE権限が付与されます。


関連項目:

ユーザー・グループPUBLICの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。


DBMS_STREAMSサブプログラムの要約

表144-1 DBMS_STREAMSパッケージのサブプログラム

サブプログラム 説明

COMPATIBLE_11_2ファンクション


DBMS_STREAMS.COMPATIBLE_11_2定数を戻します。

COMPATIBLE_11_1ファンクション


DBMS_STREAMS.COMPATIBLE_11_1定数を戻します。

COMPATIBLE_10_2ファンクション


DBMS_STREAMS.COMPATIBLE_10_2定数を戻します。

COMPATIBLE_10_1ファンクション


DBMS_STREAMS.COMPATIBLE_10_1定数を戻します。

COMPATIBLE_9_2ファンクション


DBMS_STREAMS.COMPATIBLE_9_2定数を戻します。

CONVERT_ANYDATA_TO_LCR_DDLファンクション


ANYDATAオブジェクトをSYS.LCR$_DDL_RECORDオブジェクトに変換します。

CONVERT_ANYDATA_TO_LCR_ROWファンクション


ANYDATAオブジェクトをSYS.LCR$_ROW_RECORDオブジェクトに変換します。

CONVERT_LCR_TO_XMLファンクション


ANYDATAオブジェクト内でカプセル化された論理変更レコード(LCR)を、LCR用のXMLスキーマに準拠するXMLオブジェクトに変換します。

CONVERT_XML_TO_LCRファンクション


論理変更レコード(LCR)用のXMLスキーマに準拠するXMLオブジェクトを、ANYDATAオブジェクト内でカプセル化されたLCRに変換します。

GET_INFORMATIONファンクション


様々なOracle Streams属性に関する情報を戻します。

GET_STREAMS_NAMEファンクション


実行者の名前を戻します。

GET_STREAMS_TYPEファンクション


実行者のタイプを戻します。

GET_TAGファンクション


現行のセッションで生成されるREDOエントリすべてに対してバイナリ・タグを取得します。

MAX_COMPATIBLEファンクション


Oracle Databaseの現行リリースに対して可能な最大互換性定数よりも大きい整数を戻します。

SET_TAGプロシージャ


現行のセッションで継続して生成されるREDOエントリすべてに対してバイナリ・タグを設定します。



注意:

このパッケージのサブプログラムはコミットしません。


COMPATIBLE_11_2ファンクション

このファンクションは、DBMS_STREAMS.COMPATIBLE_11_2定数を戻します。

構文

DBMS_STREAMS.COMPATIBLE_11_2
RETURN INTEGER;

使用上の注意

このファンクションを論理変更レコード(LCR)のGET_COMPATIBLEメンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。

このファンクションによって戻される定数値は、データベースの11.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE初期化パラメータを使用して制御します。


関連項目:

  • GET_COMPATIBLEメンバー・ファンクション

  • Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。



COMPATIBLE_11_1ファンクション

このファンクションは、DBMS_STREAMS.COMPATIBLE_11_1定数を戻します。

構文

DBMS_STREAMS.COMPATIBLE_11_1
RETURN INTEGER;

使用上の注意

このファンクションを論理変更レコード(LCR)のGET_COMPATIBLEメンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。

このファンクションによって戻される定数値は、データベースの11.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE初期化パラメータを使用して制御します。


関連項目:

  • GET_COMPATIBLEメンバー・ファンクション

  • Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。



COMPATIBLE_10_2ファンクション

このファンクションは、DBMS_STREAMS.COMPATIBLE_10_2定数を戻します。

構文

DBMS_STREAMS.COMPATIBLE_10_2
RETURN INTEGER;

使用上の注意

このファンクションを論理変更レコード(LCR)のGET_COMPATIBLEメンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。

このファンクションによって戻される定数値は、データベースの10.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE初期化パラメータを使用して制御します。


関連項目:

  • GET_COMPATIBLEメンバー・ファンクション

  • Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。



COMPATIBLE_10_1ファンクション

このファンクションは、DBMS_STREAMS.COMPATIBLE_10_1定数を戻します。

構文

DBMS_STREAMS.COMPATIBLE_10_1
RETURN INTEGER;

使用上の注意

このファンクションを論理変更レコード(LCR)のGET_COMPATIBLEメンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。

このファンクションによって戻される定数値は、データベースの10.1.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE初期化パラメータを使用して制御します。


関連項目:

  • GET_COMPATIBLEメンバー・ファンクション

  • Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。



COMPATIBLE_9_2ファンクション

このファンクションは、DBMS_STREAMS.COMPATIBLE_9_2定数を戻します。

構文

DBMS_STREAMS.COMPATIBLE_9_2
RETURN INTEGER;

使用上の注意

このファンクションを論理変更レコード(LCR)のGET_COMPATIBLEメンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。

このファンクションによって戻される定数値は、データベースの9.2.0の互換性に対応します。Oracle Databaseの互換性は、COMPATIBLE初期化パラメータを使用して制御します。


関連項目:

  • GET_COMPATIBLEメンバー・ファンクション

  • Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。



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;

パラメータ

表144-2 CONVERT_ANYDATA_TO_LCR_DDLファンクションのパラメータ

パラメータ 説明

source

変換するANYDATAオブジェクト。このオブジェクトがDDL論理変更レコード(DDL LCR)でない場合は、例外が発生します。


使用上の注意

DBMS_TRANSFORMパッケージのCREATE_TRANSFORMATIONプロシージャで作成される変換で、このファンクションを使用することもできます。ANYDATAキューからSYS.LCR$_DDL_RECORDタイプのキューにDDLのLCRを伝播するサブスクライバを追加するときに作成する変換を使用してください。


関連項目:

『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』


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;

パラメータ

表144-3 CONVERT_ANYDATA_TO_LCR_ROWファンクションのパラメータ

パラメータ 説明

source

変換するANYDATAオブジェクト。このオブジェクトが行論理変更レコード(行LCR)でない場合は、例外が発生します。


使用上の注意

DBMS_TRANSFORMパッケージのCREATE_TRANSFORMATIONプロシージャで作成される変換で、このファンクションを使用することもできます。ANYDATAキューからSYS.LCR$_ROW_RECORDタイプのキューに行LCRを伝播するサブスクライバを追加するときに作成する変換を使用してください。


関連項目:

『Oracle Streamsアドバンスト・キューイング・ユーザーズ・ガイド』


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;

パラメータ

表144-4 CONVERT_LCR_TO_XMLファンクションのパラメータ

パラメータ 説明

anylcr

ANYDATAにカプセル化された変換するLCR。このオブジェクトがANYDATAにカプセル化されたLCRでない場合は、例外が発生します。



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;

パラメータ

表144-5 CONVERT_XML_TO_LCRファンクションのパラメータ

パラメータ 説明

xmldat

変換するXML LCRオブジェクト。このオブジェクトがLCR用のXMLスキーマに準拠しない場合は、例外が発生します。



GET_INFORMATIONファンクション

このファンクションは、様々なOracle Streams属性に関する情報を戻します。

構文

DBMS_STREAMS.GET_INFORMATION(
   name  IN  VARCHAR2) 
RETURN ANYDATA;

パラメータ

表144-6 GET_INFORMATIONファンクションのパラメータ

パラメータ 説明

name

取得する情報のタイプ。現在、次の指定が可能です。

  • SENDER: 現行の論理変更レコード(LCR)の送信者名を戻します(そのAQメッセージのプロパティから)。このファンクションは、プロシージャDMLハンドラ、DDLハンドラ、エラー・ハンドラまたはメッセージ・ハンドラの内部でコールされます。適用ハンドラの外部からコールされた場合は、NULLが戻ります。戻り値は、VARCHAR2として解析されます。

  • CONSTRAINT_NAME: エラーが発生したLCRについて、違反した制約名を戻します。このファンクションは、適用プロセスのプロシージャDMLハンドラまたはエラー・ハンドラの内部でコールされます。プロシージャDMLハンドラまたはエラー・ハンドラの外部からコールされた場合は、NULLが戻ります。戻り値は、VARCHAR2として解析されます。



GET_STREAMS_NAMEファンクション

実行者が次のOracle Streamsタイプのいずれかである場合、このファンクションは実行者のOracle Streams名を取得します。

  • CAPTURE

  • APPLY

  • ERROR_EXECUTION

実行者がこれらのタイプに該当しない場合、このファンクションはNULLを返します。

構文

DBMS_STREAMS.GET_STREAMS_NAME
RETURN VARCHAR2;

使用上の注意

ルール条件、ルール・ベースの変換、適用ハンドラおよびエラー・ハンドラにおいて、このファンクションを使用できます。たとえば、複数の適用プロセスに1つのエラー・ハンドラを使用する場合、GET_STREAMS_NAMEファンクションを使用して、エラーを発生する適用プロセスの名前を指定できます。


GET_STREAMS_TYPEファンクション

このファンクションは実行者のOracle Streamsタイプを取得し、次のタイプのいずれかを返します。

  • CAPTURE

  • APPLY

  • ERROR_EXECUTION

実行者がこれらのタイプに該当しない場合、このファンクションはNULLを返します。

構文

DBMS_STREAMS.GET_STREAMS_TYPE
RETURN VARCHAR2;

使用上の注意

ルール条件、ルール・ベースの変換、適用ハンドラおよびエラー・ハンドラにおいて、このファンクションを使用できます。たとえば、適用プロセスのキュー(APPLYタイプ)ではなく、エラー・キュー(ERROR_EXECUTIONタイプ)のメッセージを処理している場合、GET_STREAMS_TYPEファンクションを使用して、プロシージャDMLハンドラの操作内容を変更できます。


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; 

MAX_COMPATIBLEファンクション

このファンクションは、Oracle Databaseの現行リリースに対して可能な最大互換性定数よりも大きい整数を戻します。

構文

DBMS_STREAMS.MAX_COMPATIBLE
RETURN INTEGER;

使用上の注意

このファンクションを論理変更レコード(LCR)のGET_COMPATIBLEメンバー・ファンクションとともに使用して、互換性に基づく動作を指定できます。

MAX_COMPATIBLEファンクションは常に、このファンクションが実行されるOracle Databaseのリリースに対する最大互換性を戻します。そのため、ルール条件でこのファンクションを使用する場合は、Oracle Databaseの最新リリースにアップグレードする際にルール条件を変更する必要がありません。


関連項目:

  • GET_COMPATIBLEメンバー・ファンクション

  • Oracle Streamsでサポートされていない変更を破棄するルールの作成方法の詳細は、『Oracle Streams概要および管理』を参照してください。

  • COMPATIBLE初期化パラメータの詳細は、『Oracle Databaseリファレンス』および『Oracle Databaseアップグレード・ガイド』を参照してください。



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);

パラメータ

表144-7 SET_TAGプロシージャのパラメータ

パラメータ 説明

tag

現行のセッションで継続して生成されるREDOエントリすべてに対するバイナリ・タグ。RAW値は一連のバイトで、バイトは一連のビットです。

デフォルトでは、セッションのタグはNULLです。

タグ値のサイズ制限は、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プロシージャは、取得プロセスの作成時に自動的に実行できます。


関連項目:

BUILDプロシージャ