REFRESHEは、指定されたマテリアライズドビューをリフレッシュします。
機能の適用範囲
この内容は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]
[, async IN BOOLEAN := false]
);
パラメータの説明
説明
ネストされていないマテリアライズドビューには連鎖リフレッシュ動作が存在せず、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 | ネストされたマテリアライズドビューのリフレッシュモードを指定します。取り得る値は以下の通りです:
|
| out_of_place | 現在実質的な効果はありません。Oracle互換性のためのものです。 |
| skip_ext_data | 現在実質的な効果はありません。Oracle互換性のためのものです。 |
| refresh_parallel | リフレッシュ操作の並列度、つまり同時に実行するリフレッシュ操作のスレッド数です。 |
| nested_refresh_mode | ネストされたマテリアライズドビューの連鎖リフレッシュが一貫性のあるリフレッシュ動作か非一貫性のあるリフレッシュ動作かを指定します。取り得る値は以下の通りです:
|
| async | 非同期リフレッシュを行うかどうかを指定します。取り得る値は以下の通りです:
説明V4.4.2バージョンでは、このパラメータはV4.4.2 BP2バージョンから導入されました。 |
例
独立更新モード:
パラメータ
mv_nameのみを指定します。obclient> CALL DBMS_MVIEW.REFRESH('mv1');パラメータ
mv_nameとパラメータnestedの値をfalseに指定します。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> false);
連鎖非一貫性更新モード:
パラメータ
mv_nameを指定し、パラメータnestedの値をtrueに設定しますが、パラメータnested_refresh_modeは指定しません。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true);パラメータ
mv_nameを指定し、パラメータnestedの値をtrueに設定するとともに、パラメータnested_refresh_modeの値をinconsistentに設定します。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true, nested_refresh_mode => 'inconsistent');
連鎖一貫性更新モード:
パラメータ
mv_nameを指定し、パラメータnestedの値をtrueに設定するとともに、パラメータnested_refresh_modeの値をconsistentに設定します。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true, nested_refresh_mode => 'consistent');以下はエラーが発生するシナリオです:
パラメータ
nestedの値をfalseに設定し、さらにパラメータnested_refresh_modeの値も指定した場合、エラーが発生します。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> false, nested_refresh_mode => 'xxxx');パラメータ
nestedの値を指定せず、パラメータnested_refresh_modeの値のみを指定した場合、エラーが発生します。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested_refresh_mode => 'xxxx');パラメータ
nestedの値をtrueに設定し、パラメータnested_refresh_modeの値を無効な文字列に設定した場合、エラーが発生します。obclient> CALL DBMS_MVIEW.REFRESH( 'mv1', nested=> true, nested_refresh_mode => '無効な文字列');
関連ドキュメント
マテリアライズドビューの更新に関する情報については、マテリアライズドビューの更新を参照してください。