DBMS_MVIEW パッケージのストアドプロシージャを使用すると、具体化されたビューとその依存関係を管理および更新することができます。
PolarDBは、
DBMS_MVIEWパッケージで次のストアドプロシージャをサポートします。| ストアドプロシージャ | 戻り値の型 | 説明 |
| GET_MV_DEPENDENCIES(list VARCHAR2, deplist VARCHAR2); | N/A | 指定されたビューの依存関係のリストを返します。 |
| REFRESH(list VARCHAR2, method VARCHAR2, rollback seg VARCHAR2 , push deferred rpc BOOLEAN, refresh after errors BOOLEAN , purge option NUMBER, parallelism NUMBER, heap size NUMBER , atomic refresh BOOLEAN , nested BOOLEAN); | N/A | コンマ (,) で区切られたビューのリストを更新します。 |
| REFRESH(tab dbms_utility.uncl_array, method VARCHAR2, rollback_seg VARCHAR2, push_deferred_rpc BOOLEAN, refresh_after_errors BOOLEAN, purge_option NUMBER, parallelism NUMBER, heap_size NUMBER, atomic_refresh BOOLEAN, nested BOOLEAN); | N/A | DBMS_UTILITY.UNCL_ARRAYテーブルにリストされているすべてのビューを更新します。 |
| REFRESH_ALL_MVIEWS (number_of_failures BINARY_INTEGER, method VARCHAR2, rollback_seg VARCHAR2, refresh_after_errors BOOLEAN, atomic_refresh BOOLEAN); | N/A | すべての具体化されたビューを更新します。 |
| REFRESH_DEPENDENT(number_of_failures BINARY_INTEGER, list VARCHAR2, method VARCHAR2, rollback_seg VARCHAR2, refresh_after_errors BOOLEAN, atomic_refresh BOOLEAN, nested BOOLEAN); | N/A | コンマ区切りのリストに表示されているビューに依存するすべてのビューを更新します。 |
| REFRESH_DEPENDENT(number_of_failures BINARY_INTEGER, tab dbms_utility.uncl_array, method VARCHAR2, rollback_seg VARCHAR2, refresh_after_errors BOOLEAN, atomic_refresh BOOLEAN, nested BOOLEAN); | N/A | DBMS_UTILITY.UNCL_ARRAYテーブルにリストされているビューに依存するすべてのビューを更新します。 |
GET_MV_DEPENDENCIES
マテリアライズドビューの名前が付けられたら、
DECLAREの例
GET_MV_DEPENDENCIESストアドプロシージャを使用して、指定されたビューに依存するアイテムのリストを取得できます。 構文: GET_MV_DEPENDENCIES (
list IN VARCHAR2,
deplist OUT VARCHAR2); パラメータ| パラメーター | 説明 |
| list | 具体化されたビューの名前、またはコンマ (,) で区切られた具体化されたビューの名前のリストを指定します。 |
| deplist | コンマ (,) で区切られたスキーマ修飾依存関係のリストを指定します。 |
deplist VARCHAR2(1000);
開始
DBMS_MVIEW.GET_MV_DEPENDENCIES('public.emp_view', deplist);
DBMS_OUTPUT.PUT_LINE('deplist: '| | deplist);
END; この例では、public.emp_viewマテリアライズド・ビューの依存関係のリストが取得されます。 REFRESH
REFRESHストアドプロシージャを使用して、コンマ (,) で区切られたビューのリスト、またはDBMS_UTILITY.UNCL_ARRAYテーブルの指定されたすべてのビューを更新できます。 - 次の構文を使用して、ビュー名のコンマ区切りリストを指定できます。
list IN VARCHAR2, method IN VARCHAR2 DEFAULT NULL, rollback_seg IN VARCHAR2 DEFAULT NULL, push_deferred_rpc IN BOOLEAN DEFAULT TRUE, refresh_after_errors IN BOOLEAN DEFAULT FALSE, purge_option IN NUMBER DEFAULT 1, parallelism IN NUMBER DEFAULT 0, heap_size IN NUMBER DEFAULT 0, atomic_refresh IN BOOLEAN DEFAULT TRUE, ネストされたIN BOOLEAN DEFAULT FALSE); - 次の構文を使用して、
DBMS_UTILITY.UNCL_ARRAYテーブルでビューを指定できます:REFRESH ( tab IN OUT DBMS_UTILITY.UNCL_ARRAY, method IN VARCHAR2 DEFAULT NULL, rollback_seg IN VARCHAR2 DEFAULT NULL, push_deferred_rpc IN BOOLEAN DEFAULT TRUE, refresh_after_errors IN BOOLEAN DEFAULT FALSE, purge_option IN NUMBER DEFAULT 1, parallelism IN NUMBER DEFAULT 0, heap_size IN NUMBER DEFAULT 0, atomic_refresh IN BOOLEAN DEFAULT TRUE, ネストされたIN BOOLEAN DEFAULT FALSE);
| パラメーター | 説明 |
| list | マテリアライズドビューの名前またはマテリアライズドビュー名のリストをコンマ (,) で区切って指定します。 |
| タブ | マテリアライズド・ビューの名前を指定します。 |
| method | 指定したビューに適用する更新方法を指定します。 Cはサポートされている唯一のメソッドです。 このメソッドは、ビューの完全な更新を実行します。 |
| rollback_seg | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は NULL です。 |
| push_deferred_rpc | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は TRUE です。 |
| refresh_after_errors | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は FALSE です。 |
| purge_option | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は 1 です。 |
| parallelism | このパラメーターは互換性のために使用され、無視できます。 デフォルト値:0 |
| heap_size | このパラメーターは互換性のために使用され、無視できます。 デフォルト値:0 |
| atomic_refresh | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は TRUE です。 |
| nested | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は FALSE です。 |
EXEC DBMS_MVIEW.REFRESH(list => 'public.emp_view ', method => 'C');REFRESH_ALL_M VIEWS
REFRESH_ALL_MVIEWSストアドプロシージャを使用して、ビューが依存するテーブルまたはビューの更新後に更新されない具体化ビューを更新できます。 構文: REFRESH_ALL_MVIEWS ()
number_of_failures OUT BINARY_INTEGER,
method IN VARCHAR2 DEFAULT NULL,
rollback_seg IN VARCHAR2 DEFAULT NULL,
refresh_after_errors IN BOOLEAN DEFAULT FALSE,
atomic_refresh IN BOOLEAN DEFAULT TRUE); パラメータ| パラメーター | 説明 |
| number_of_failures | 更新操作で失敗した更新の数を指定します。 |
| method | 指定したビューに適用する更新方法を指定します。 Cはサポートされている唯一のメソッドです。 このメソッドは、ビューの完全な更新を実行します。 |
| rollback_seg | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は NULL です。 |
| refresh_after_errors | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は FALSE です。 |
| atomic_refresh | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は TRUE です。 |
エラーINTEGER;
開始
DBMS_MVIEW.REFRESH_ALL_MVIEWS (エラー、method => 'C');
END; 更新が完了した後、errors変数は失敗した更新の数を含む。 REFRESH_DEPENDENT
REFRESH_DEPENDENTストアドプロシージャを使用して、すべてのマテリアライズドビューを更新できます。 コンマ (,) で区切ったビューのリストを指定するか、DBMS_UTILITY.UNCL_ARRAYテーブルでビュー名を指定できます。 - 次の構文を使用して、ビュー名のコンマ区切りリストを指定できます。
number_of_failures OUT BINARY_INTEGER, list IN VARCHAR2, method IN VARCHAR2 DEFAULT NULL, rollback_seg IN VARCHAR2 DEFAULT NULL refresh_after_errors IN BOOLEAN DEFAULT FALSE, atomic_refresh IN BOOLEAN DEFAULT TRUE, ネストされたIN BOOLEAN DEFAULT FALSE); - 次の構文を使用して、
DBMS_UTILITY.UNCL_ARRAYテーブルでビュー名を指定できます:REFRESH_DEPENDENT ( number_of_failures OUT BINARY_INTEGER, tab IN DBMS_UTILITY.UNCL_ARRAY, method IN VARCHAR2 DEFAULT NULL, rollback_seg IN VARCHAR2 DEFAULT NULL, refresh_after_errors IN BOOLEAN DEFAULT FALSE, atomic_refresh IN BOOLEAN DEFAULT TRUE, ネストされたIN BOOLEAN DEFAULT FALSE);
| パラメーター | 説明 |
| number_of_failures | 更新操作で失敗した更新の数を指定します。 |
| list | マテリアライズドビューの名前またはマテリアライズドビュー名のリストをコンマ (,) で区切って指定します。 |
| タブ | マテリアライズド・ビューの名前を指定します。 |
| method | 指定したビューに適用する更新方法を指定します。 Cはサポートされている唯一のメソッドです。 このメソッドは、ビューの完全な更新を実行します。 |
| rollback_seg | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は NULL です。 |
| refresh_after_errors | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は FALSE です。 |
| atomic_refresh | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は TRUE です。 |
| nested | このパラメーターは互換性のために使用され、無視できます。 デフォルト値は FALSE です。 |
エラーINTEGER;
開始
DBMS_MVIEW.REFRESH_DEPENDENT(errors, list => 'public.emp_view ', method => 'C');
END; 更新が完了した後、errors変数は失敗した更新の数を含む。