REFRESHは、指定されたマテリアライズドビューを更新するために使用されます。
適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity EditionはMySQLモードのみを提供します。
構文
DBMS_MVIEW.REFRESH (
{ list IN VARCHAR2,
| tab IN DBMS_UTILITY.UNCL_ARRAY,}
method IN VARCHAR2 := NULL,
rollback_seg IN VARCHAR2 := NULL,
push_deferred_rpc IN BOOLEAN := true,
refresh_after_errors IN BOOLEAN := false,
purge_option IN BINARY_INTEGER := 1,
parallelism IN BINARY_INTEGER := 0,
heap_size IN BINARY_INTEGER := 0,
atomic_refresh IN BOOLEAN := true,
nested IN BOOLEAN := false,
out_of_place IN BOOLEAN := false,
skip_ext_data IN BOOLEAN := false,
refresh_parallel IN BINARY_INTEGER := 0,
nested_refresh_mode IN VARCHAR2 := NULL
);
パラメータの説明
説明
非ネストされたマテリアライズドビューにはカスケード更新機能が存在しないため、nestedおよびnested_refresh_modeパラメータを指定しても意味がありません。デフォルトでは個別に更新されます。
| パラメータ | 説明 |
|---|---|
| list | コンマで区切られた、フラッシュ対象のマテリアライズドビュー名のリスト。現在は単一のマテリアライズドビューのみをフラッシュすることができ、複数のマテリアライズドビューを同時にフラッシュすることはサポートされていません。 |
| tab | フラッシュ対象のマテリアライズドビュー名の配列。現在は単一のマテリアライズドビュー名の配列のみをフラッシュすることができ、複数のマテリアライズドビュー名の配列を同時にフラッシュすることはサポートされていません。 |
| method | マテリアライズドビューのフラッシュ戦略を定義します。マテリアライズドビュー作成時にデフォルトの戦略を指定できます。選択可能なメソッドは以下の通りです:
|
| rollback_seg | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| push_deferred_rpc | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| refresh_after_errors | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| purge_option | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| parallelism | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| heap_size | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| atomic_refresh | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| nested | ネストされたマテリアライズドビューのフラッシュモードを指定します。値は以下の通りです:
説明OceanBaseデータベースV4.3.5バージョンでは、パラメータ |
| out_of_place | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| skip_ext_data | 現在のところ実際の機能はありません。Oracle互換性のためにのみ使用されます。 |
| refresh_parallel | フラッシュ操作の並列度、つまり同時に実行されるフラッシュ操作のスレッド数。
説明OceanBaseデータベースV4.3.5バージョンでは、V4.3.5 BP1バージョンからこのパラメータのデフォルト値が0に変更されました。 |
| nested_refresh_mode | ネストされたマテリアライズドビューのカスケード更新を一貫性更新とするか、非一貫性更新とするかを指定します。値は以下のとおりです:
説明OceanBaseデータベースV4.3.5バージョンについて:
|
例
独立リフレッシュモード:
パラメータ
mv_nameのみを指定します。CALL DBMS_MVIEW.REFRESH('mv1');パラメータ
mv_nameとパラメータnestedの値をfalseと指定します。CALL DBMS_MVIEW.REFRESH('mv1', nested=> false);
カスケード非一貫リフレッシュモード:
パラメータ
mv_nameを指定し、パラメータnestedの値をtrueとし、パラメータnested_refresh_modeは指定しません。CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true);パラメータ
mv_nameを指定し、パラメータnestedの値をtrueとし、パラメータnested_refresh_modeの値をinconsistentと指定します。CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true, nested_refresh_mode => 'inconsistent');
カスケード一貫リフレッシュモード:
パラメータ
mv_nameを指定し、パラメータnestedの値をtrueとし、パラメータnested_refresh_modeの値をconsistentと指定します。CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true, nested_refresh_mode => 'consistent');以下はエラーが発生するシナリオです:
パラメータ
nestedの値がfalseであり、かつパラメータnested_refresh_modeの値も指定されている場合、エラーが発生します。CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> false, nested_refresh_mode => 'xxxx');パラメータ
nestedの値を指定せず、パラメータnested_refresh_modeの値のみを指定した場合、エラーが発生します。CALL DBMS_MVIEW.REFRESH('mv1', nested_refresh_mode => 'xxxx');パラメータ
nestedの値がtrueであり、パラメータnested_refresh_modeの値が無効な文字列の場合、エラーが発生します。CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true, nested_refresh_mode => '無効な文字列');
関連ドキュメント
マテリアライズドビューのリフレッシュに関する詳細は、マテリアライズドビューのリフレッシュを参照してください。