180 DBMS_TTS

DBMS_TTSパッケージは、トランスポータブル・セットが自己完結型かどうかをチェックします。すべての違反が、ビューTRANSPORT_SET_VIOLATIONSから選択できる一時表に挿入されます。

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

180.1 DBMS_TTSのセキュリティ・モデル

このプロシージャは、execute_catalog_roleを付与されているユーザーのみが実行できます。このロールは、初期段階ではユーザーSYSにのみ割り当てられています。

180.2 DBMS_TTSの例外

DBMS_TTSパッケージは、欠落しているまたは無効なトランスポータブル表領域に対する例外を作成します。

ts_not_found  EXCEPTION;
PRAGMA exception_init(ts_not_found, -29304);
ts_not_found_num NUMBER := -29304;
 
invalid_ts_list  EXCEPTION;
PRAGMA exception_init(invalid_ts_list, -29346);
invalid_ts_list_num NUMBER := -29346;

sys_or_tmp_ts     EXCEPTION; 
PRAGMA exception_init(sys_or_tmp_ts, -29351); 
sys_or_tmp_ts_num NUMBER := -29351;

180.3 DBMS_TTSの操作上のノート

トランスポータブル表領域に関しては、参照整合性制約の有効化および無効化の処理が異なります。

  • 無効化された参照整合性制約は、トランスポータビリティ・ルールに違反せず、インポート・フェーズ時に削除されます。

  • 有効化された参照整合性制約は、トランスポータブル・セット外の表領域の表を参照する場合に、トランスポータビリティ・ルールに違反します。

180.4 DBMS_TTSサブプログラムの要約

表に示す2つのプロシージャは、データベース管理者がコールするように設計されています。

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

サブプログラム 説明

DOWNGRADEプロシージャ

トランスポータブル表領域関連のデータをダウングレードします。

TRANSPORT_SET_CHECKプロシージャ

表領域(トランスポート可能)のセットが自己完結型かどうかをチェックします。

180.4.1 DOWNGRADEプロシージャ

このプロシージャは、データに関連するトランスポータブル表領域をダウングレードします。

構文

DBMS_TTS.DOWNGRADE;

180.4.2 TRANSPORT_SET_CHECKプロシージャ

このプロシージャは、表領域(トランスポート可能)のセットが自己完結型かどうかをチェックします。このプロシージャのコール後、ユーザーはビューから選択して、違反があればそのリストを調べることができます。

構文

DBMS_TTS.TRANSPORT_SET_CHECK (
   ts_list          IN CLOB, 
   incl_constraints IN BOOLEAN DEFAULT FALSE,
   full_check       IN BOOLEAN DEFAULT FALSE);

パラメータ

表180-2 TRANSPORT_SET_CHECKプロシージャのパラメータ

パラメータ 説明

ts_list

1つ以上の表領域のカンマ区切りリスト。

incl_constraints

表領域が自己完結型かどうかを調べるときに、参照整合性制約を考慮する場合はTRUEを設定します(ts_list引数のみでコールされた場合はTRANSPORT_SET_CHECKが動作するように、incl_constraintsパラメータがデフォルトで設定されています)。

full_check

完全または部分的な依存性チェックが必要かどうかを示します。TRUE,の場合、INおよびOUTポインタ(依存性)のすべてを処理し、トランスポータブル・セット内で自己完結していないものを違反として取得します。TSPITRの場合またはトランスポータブルの厳密なバージョンが必要な場合にも、パラメータをTRUEに設定してください。デフォルトでは、パラメータはFALSEに設定されます。この場合、OUTポインタのみが違反とみなされます。

ビューで行が戻らない場合、表領域のセットは自己完結型です。次に例を示します。

SQLPLUS> EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('foo,bar', TRUE);
SQLPLUS> SELECT * FROM TRANSPORT_SET_VIOLATIONS;