ヘッダーをスキップ
Oracle® Databaseアドバンスト・レプリケーション・マネージメントAPIリファレンス
12cリリース1 (12.1)
E52979-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

16 DBMS_RECTIFIER_DIFF

DBMS_RECTIFIER_DIFFパッケージには、2つのレプリケーション・サイト間の、データの非一貫性の検出および解決に使用されるAPIが含まれています。

この章には、次の項が含まれます。


注意:

DBMS_COMPARISONパッケージを使用して、データベース・オブジェクト間の相違点を特定し、収束することもできます。


関連項目:

  • DBMS_COMPARISONパッケージの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


DBMS_RECTIFIER_DIFFサブプログラムの概要

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

サブプログラム 説明

「DIFFERENCESプロシージャ」


2つの表の相違点を判定します。

「RECTIFYプロシージャ」


2つの表の相違点を解決します。


DIFFERENCESプロシージャ

このプロシージャは、2つの表の相違点を判定します。これは、ネストした表の記憶表を受け入れます。


注意:

このプロシージャは、LOB列やユーザー定義型をベースとする列には使用できません。

構文

DBMS_RECTIFIER_DIFF.DIFFERENCES (
   sname1               IN  VARCHAR2,
   oname1               IN  VARCHAR2,
   reference_site       IN  VARCHAR2 := '',
   sname2               IN  VARCHAR2,
   oname2               IN  VARCHAR2,
   comparison_site      IN  VARCHAR2 := '',
   where_clause         IN  VARCHAR2 := '',
   { column_list        IN  VARCHAR2 := '', 
   | array_columns      IN  DBMS_UTILITY.NAME_ARRAY, }
   missing_rows_sname   IN  VARCHAR2,
   missing_rows_oname1  IN  VARCHAR2,
   missing_rows_oname2  IN  VARCHAR2,
   missing_rows_site    IN  VARCHAR2 := '',
   max_missing          IN  INTEGER,
   commit_rows          IN  INTEGER := 500);

注意:

このプロシージャはオーバーロードされています。column_listパラメータとarray_columnsパラメータは、同時には指定できません。

パラメータ

表16-2 DIFFERENCESプロシージャのパラメータ

パラメータ 説明
sname1

reference_siteのスキーマの名前です。

oname1

reference_siteの表の名前です。

reference_site

参照データベース・サイトの名前です。デフォルトのNULLは、カレント・サイトを示します。

sname2

comparison_siteのスキーマの名前です。

oname2

comparison_siteの表の名前です。

comparison_site

比較データベース・サイトの名前です。デフォルトのNULLは、カレント・サイトを示します。

where_clause

この句を満たす行のみが比較されます。デフォルトのNULLの場合は、すべての行が比較されます。

column_list

2つの表で比較される1つ以上の列名の、カンマ区切りのリストです。カンマの前後には空白を入れません。デフォルトのNULLの場合は、すべての列が比較されます。

array_columns

2つの表で比較される列名の、PL/SQL連想配列です。索引付けは1の位置から始まり、配列の最後の要素はNULLになります。1の位置がNULLの場合は、すべての列が使用されます。

missing_rows_sname

欠落行のある表が含まれるスキーマの名前です。

missing_rows_oname1

comparison_siteの表から欠落しているreference_siteの表の行、およびreference_siteの表から欠落しているcomparison_siteサイトの行の情報が格納される、missing_rows_siteにある既存の表の名前です。

missing_rows_oname2

欠落行の情報が格納されるmissing_rows_siteにある既存の表の名前です。この表には3つの列があります。R_ID列はmissing_rows_oname1表の行のROWIDを示し、PRESENT列は行が存在するサイトの名前を示し、ABSENT列は行が欠落しているサイトの名前を示します。

missing_rows_site

missing_rows_oname1表とmissing_rows_oname2表があるサイトの名前です。デフォルトのNULLは、表がカレント・サイトにあることを示します。

max_missing

missing_rows_oname表に挿入する必要のある行の最大数を指定する整数です。max_missingの行数よりも多く欠落している場合、多くの行がmissing_rows_onameに挿入され、行がさらに欠落しているかどうかを判断せずに、ルーチンが通常に戻ります。このパラメータは、フラグメントがあまりにも異なるために、行が欠落している表に非常に多くのエントリがあり、継続する意味がない場合に役立ちます。max_missingが1未満かNULLの場合に、例外badnumberを発生させます。

commit_rows

COMMITが行われる前に、参照表や比較表に挿入される、または参照表や比較表から削除される行の最大数です。デフォルトでは、500行が挿入または削除された後、COMMITが行われます。空の文字列(' ')やNULLの場合は、1つの表に対してすべての行が挿入または削除された後に、COMMITが行われます。


例外

表16-3 DIFFERENCESプロシージャの例外

例外 説明
nosuchsite

データベース・サイトが見つかりませんでした。

badnumber

commit_rowsパラメータが1未満です。

missingprimarykey

列のリストには、主キー(または等価のSET_COLUMNS)が含まれる必要があります。

badname

表またはスキーマの名前が、NULLまたは空の文字列です。

cannotbenull

パラメータはNULLに設定できません。

notshapeequivalent

比較される表の形式が一致しません。形式とは、列数、列名、列のデータ型を意味します。

unknowncolumn

列が存在しません。

unsupportedtype

タイプがサポートされていません。

dbms_repcat.commfailure

リモート・サイトにアクセスできません。

dbms_repcat.missingobject

表が存在しません。


制限事項

欠落行表に一意キーまたは主キー制約がある場合、エラーORA-00001(一意制約に反しています)が発生します。

RECTIFYプロシージャ

このプロシージャは、2つの表の相違点を解決します。これは、ネストした表の記憶表を受け入れます。


注意:

このプロシージャは、LOB列やユーザー定義型をベースとする列には使用できません。

構文

DBMS_RECTIFIER_DIFF.RECTIFY (
   sname1               IN  VARCHAR2,
   oname1               IN  VARCHAR2,
   reference_site       IN  VARCHAR2 := '',
   sname2               IN  VARCHAR2,
   oname2               IN  VARCHAR2,
   comparison_site      IN  VARCHAR2 := '',
   { column_list        IN  VARCHAR2 := '', 
   | array_columns      IN  dbms_utility.name_array, }
   missing_rows_sname   IN  VARCHAR2,
   missing_rows_oname1  IN  VARCHAR2,
   missing_rows_oname2  IN  VARCHAR2,
   missing_rows_site    IN  VARCHAR2 := '',
   commit_rows          IN  INTEGER := 500);

注意:

このプロシージャはオーバーロードされています。column_listパラメータとarray_columnsパラメータは、同時には指定できません。

パラメータ

表16-4 RECTIFYプロシージャのパラメータ

パラメータ 説明
sname1

reference_siteのスキーマの名前です。

oname1

reference_siteの表の名前です。

reference_site

参照データベース・サイトの名前です。デフォルトのNULLは、カレント・サイトを示します。

sname2

comparison_siteのスキーマの名前です。

oname2

comparison_siteの表の名前です。

comparison_site

比較データベース・サイトの名前です。デフォルトのNULLは、カレント・サイトを示します。

column_list

2つの表で比較される1つ以上の列名の、カンマ区切りのリストです。カンマの前後には空白を入れません。デフォルトのNULLの場合は、すべての列が比較されます。

array_columns

2つの表で比較される列名の、PL/SQL連想配列です。索引付けは1の位置から始まり、配列の最後の要素はNULLになります。1の位置がNULLの場合は、すべての列が使用されます。

missing_rows_sname

欠落行のある表が含まれるスキーマの名前です。

missing_rows_oname1

comparison_siteの表から欠落しているreference_siteの表の行、およびreference_siteの表から欠落しているcomparison_siteサイトの行の情報が格納される、missing_rows_siteにある表の名前です。

missing_rows_oname2

欠落行の情報が格納されるmissing_rows_siteにある表の名前です。この表には3つの列があります。それぞれの列には、missing_rows_oname1表の行のROWID、行が存在するサイトの名前、および行が欠落しているサイトの名前が格納されます。

missing_rows_site

missing_rows_oname1表とmissing_rows_oname2表があるサイトの名前です。デフォルトのNULLは、表がカレント・サイトにあることを示します。

commit_rows

COMMITが行われる前に、参照表や比較表に挿入される、または参照表や比較表から削除される行の最大数です。デフォルトでは、500行が挿入または削除された後、COMMITが行われます。空の文字列(' ')やNULLの場合は、1つの表に対してすべての行が挿入または削除された後に、COMMITが行われます。


例外

表16-5 RECTIFYプロシージャの例外

例外 説明
nosuchsite

データベース・サイトが見つかりませんでした。

badnumber

commit_rowsパラメータが1未満です。

badname

表またはスキーマの名前が、NULLまたは空の文字列です。

dbms_repcat.commfailure

リモート・サイトにアクセスできません。

dbms_repcat.missingobject

表が存在しません。