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 | ネストされたマテリアライズドビューのリフレッシュモードを指定します。値は以下のとおりです:
|
| out_of_place | 現在のところ実際の効果はありません。Oracle互換性のためのものです。 |
| skip_ext_data | 現在のところ実際の効果はありません。Oracle互換性のためのものです。 |
| refresh_parallel | リフレッシュ操作の並列度、つまり同時に実行するリフレッシュ操作のスレッド数です。 |
| nested_refresh_mode | ネストされたマテリアライズドビューの連鎖リフレッシュが一貫性のあるリフレッシュ動作か一貫性のないリフレッシュ動作かを指定します。値は以下のとおりです:
|
例
独立更新モード:
パラメータ
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 => '無効な文字列');
関連ドキュメント
マテリアライズドビューの更新に関する情報については、マテリアライズドビューの更新を参照してください。