98 DBMS_LOGSTDBY_CONTEXT

Oracle Database 12cリリース1(12.1)では、SQL適用プロセスによってLSBY_APPLY_CONTEXTという名前のコンテキスト・ネームスペースにアクセスできます。DBMS_LOGSTDBY_CONTEXTパッケージで提供されるプロシージャを使用することで、LSBY_APPLY_CONTEXTに関連付けられた様々なパラメータを設定および取得できます。これは、DBMS_LOGSTBDY.SKIPプロシージャおよびDBMS_LOGSTDBY.SKIP_ERRORプロシージャを使用してSQL適用に登録するSKIPプロシージャを記述する際に役に立ちます。

この章のトピックは、次のとおりです:

参照:

SQL適用およびロジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。

98.1 DBMS_LOGSTDBY_CONTEXTの概要

SQL適用プロセスは、LSBY_APPLY_CONTEXTという名前のコンテキスト・ネームスペースにアクセスできます。

次の表には、DBMS_LOGSTDBY_CONTEXTパッケージで提供されるプロシージャを使用することで設定および取得が可能なLSBY_APPLY_CONTEXTと関連付けられた事前定義済のパラメータがリストされています。この方法でパラメータの設定および取得ができると、DBMS_LOGSTBDY.SKIPプロシージャおよびDBMS_LOGSTDBY.SKIP_ERRORプロシージャを使用してSQL適用に登録するSKIPプロシージャを記述する際に役に立ちます。

表98-1 ネームスペースLSBY_APPLY_CONTEXTの事前定義済のプロシージャ

パラメータ 説明

STATEMENT

Applyプロセスで処理している文の最初の4000バイト。

STATEMENT_TYPE

各種文タイプのリストは表97-23を参照してください。

PACKAGE_SCHEMA

処理されるPL/SQLパッケージを所有するスキーマ(該当する場合)。

PACKAGE_NAME

処理されるPL/SQLパッケージの名前(該当する場合)。

PROCEDURE_NAME

処理されるPL/SQLプロシージャの名前(該当する場合)。

CURRENT_SCHEMA

DDLまたはPL/SQLプロシージャがプライマリで実行されていた場合に有効な現在のスキーマ。

XIDUSN

プライマリ・データベースでのトランザクションのXIDUSN。

XIDSLT

プライマリ・データベースでのトランザクションのXIDSLT。

XIDSQN

プライマリ・データベースでのトランザクションのXIDSQN。

SCHEMA

SQL適用で処理されるオブジェクトを所有するスキーマ(DML操作またはDDL操作の場合)。

NAME

SQL適用で処理されるオブジェクト名(DML操作またはDDL操作の場合)。

CONTAINER_NAME

ターゲット・オブジェクトまたはPL/SQLプロシージャが常駐するコンテナ(マルチテナント・コンテナ・データベース(CDB)の場合)。

ERROR

SQL適用プロセスで発生した元のエラーのテキスト(該当する場合)。

NEW_ERROR

SQL適用プロセスで発生した新しいエラーのテキスト(該当する場合は、DBMS_LOGSTDBYのSKIP_ERRORプロシージャを参照)。

NEW_STMT

SQL適用での実行が必要な置換文のテキスト(該当する場合は、DBMS_LOGSTDBYのSKIPプロシージャを参照)。

SKIP_ACTION

SQL適用で実行されるスキップ・アクション(DBMS_LOGSTDBYのSKIPプロシージャを参照)。

98.2 DBMS_LOGSTDBY_CONTEXTのセキュリティ・モデル

DBMS_LOGSTDBY_CONTEXTパッケージのセキュリティ・モデルはDBMS_LOGSTDBYパッケージのものと同じです。

98.3 DBMS_LOGSTDBY_CONTEXTサブプログラムの要約

この表では、DBMS_LOGSTDBY_CONTEXTパッケージのサブプログラムをリストし、簡単に説明します。

表98-2 DBMS_LOGSTDBY_CONTEXTパッケージのサブプログラム

サブプログラム 説明

CLEAR_ALL_CONTEXTプロシージャ

ネームスペースLSBY_APPLY_CONTEXT内に含まれるすべてのパラメータをクリアします。

CLEAR_CONTEXTプロシージャ

特定のパラメータをクリアします。

GET_CONTEXTプロシージャ

指定されたパラメータの値を取得します。

SET_CONTEXTプロシージャ

指定された値を持つ名前付きパラメータを設定します。

98.3.1 CLEAR_ALL_CONTEXTプロシージャ

このプロシージャは、ネームスペースLSBY_APPLY_CONTEXT内に含まれるすべてのパラメータをクリアします。

構文

DBMS_LOGSTDBY_CONTEXT.CLEAR_ALL_CONTEXT;

パラメータ

なし

98.3.2 CLEAR_CONTEXTプロシージャ

このプロシージャは、特定のパラメータをクリアします。

構文

DBMS_LOGSTDBY_CONTEXT.CLEAR_CONTEXT (
   name            IN VARCHAR2);

パラメータ

表98-3 CLEAR_CONTEXTプロシージャのパラメータ

パラメータ 説明

name

クリアされたパラメータの名前。

98.3.3 GET_CONTEXTプロシージャ

このプロシージャは、指定されたパラメータの値を取得します。

構文

DBMS_LOGSTDBY_CONTEXT.GET_CONTEXT (
   name            IN VARCHAR2,
   value           OUT VARCHAR2);

パラメータ

表98-4 GET_CONTEXTプロシージャのパラメータ

パラメータ 説明

name

パラメータの名前。

value

パラメータで取得された値。

98.3.4 SET_CONTEXTプロシージャ

このプロシージャは、指定された値を持つ名前付きパラメータを設定します。

構文

DBMS_LOGSTDBY_CONTEXT.SET_CONTEXT (
   name            IN VARCHAR2
   value           IN VARCHAR2);

パラメータ

表98-5 SET_CONTEXTプロシージャのパラメータ

パラメータ 説明

name

設定するパラメータの名前。

value

設定するパラメータに割り当てられる値。