63

次を使用して、具体化されたビューを更新しようとしています。

DBMS_MVIEW.REFRESH('v_materialized_foo_tbl')

しかし、無効なSQLステートメントをスローしています。

次に、次のようなストアド プロシージャを作成しました。

CREATE OR REPLACE 
PROCEDURE MAT_VIEW_FOO_TBL 
IS
BEGIN
   DBMS_MVIEW.REFRESH('v_materialized_foo_tbl')
END MAT_VIEW_FOO_TBL IS;

このプロシージャは正常に作成されましたが、このプロシージャを

MAT_VIEW_FOO_TBL;

再びエラーをスローしています。

この問題の解決策を教えてください。

ありがとう、スリニバス

4

9 に答える 9

62

次のスクリプトを実行して、マテリアライズド ビューのデータを更新します。

BEGIN
DBMS_SNAPSHOT.REFRESH('Name here');
END;
于 2013-01-22T07:26:32.237 に答える
52

これを試して:

DBMS_SNAPSHOT.REFRESH( 'v_materialized_foo_tbl','f'); 

最初のパラメータは の名前でmat_view2 番目のパラメータは のタイプを定義しrefreshます。fは高速リフレッシュを表します。ただし、これは他の更新タイミング オプションを上書きすることに注意してください。

于 2012-12-19T04:50:56.713 に答える
14

ゲームには少し遅れましたが、この質問の元の構文を機能させる方法を見つけました(私はOracle 11gを使用しています)

** 最初に MV のスキーマに切り替えます **

EXECUTE DBMS_MVIEW.REFRESH(LIST=>'MV_MY_VIEW');

または、いくつかのオプションを追加できます。

EXECUTE DBMS_MVIEW.REFRESH(LIST=>'MV_MY_VIEW',PARALLELISM=>4);

これは実際に私にとってはうまくいき、並列処理オプションを追加すると実行速度が約 2.5 倍になりました。

詳細はこちら:マテリアライズド ビューを並列で更新する方法

于 2014-10-06T22:57:03.637 に答える
8

次のように、マテリアライズド ビューを完全に更新できます。

EXECUTE  
DBMS_SNAPSHOT.REFRESH('Materialized_VIEW_OWNER_NAME.Materialized_VIEW_NAME','COMPLETE');
于 2015-01-20T07:39:22.863 に答える
8

最適なオプションは、'?' を使用することです。メソッドの引数。このように、DBMS_MVIEW は最適なリフレッシュ方法を選択するため、最速のリフレッシュが実行されます。、実際に完全なリフレッシュが必要なときに method=>'f' のようなものを試しても失敗しません。:-)

SQL*Plus プロンプトから:

EXEC DBMS_MVIEW.REFRESH('my_schema.my_mview', method => '?');
于 2016-09-02T23:21:51.137 に答える
5

SQL Developer を使用している場合は、dbms_view を小文字にする必要があります。コードからまだプロシージャを呼び出していませんが、残りはうまくコンパイルされました。

CREATE OR REPLACE PROCEDURE "MAT_VIEW_FOO_TBL" AS 
BEGIN
  dbms_mview.refresh('v_materialized_foo_tbl');
END;
于 2014-07-14T14:17:36.293 に答える
1

以下の構文を使用してみてください。

一般的な構文:

begin
dbms_mview.refresh('mview_name');
end;

例:

begin
dbms_mview.refresh('inv_trans');
end;

上記がお役に立てば幸いです。

于 2016-04-11T01:10:05.047 に答える
-1

組み込みのプロシージャまたはパッケージを使用する必要がある場合は、「EXECUTE」コマンドを使用する必要があります。

元:

EXECUTE exec DBMS_MVIEW.REFRESH('v_materialized_foo_tbl');

于 2017-02-09T06:51:43.293 に答える