Oracle刷新物化视图 - 编译错误

Tom*_*Tom 1 oracle plsql materialized-views ora-06550

我试图在物化视图上执行刷新,但我无法编译脚本.

CREATE OR REPLACE PROCEDURE REFRESH_MV AS
BEGIN
    exec DBMS_MVIEW.REFRESH('my_mat_view_mv','C');
END REFRESH_MV;
Run Code Online (Sandbox Code Playgroud)

我收到消息:

ORA-06550:第3行第9列:PLS-00103:遇到以下其中一项时遇到符号"DBMS_MVIEW":

:=.(@%;立即用符号":="代替"DBMS_MVIEW"继续.

难道我做错了什么 ?需要进口什么?

更新

CREATE OR REPLACE PROCEDURE REFRESH_MV AS
BEGIN
    EXECUTE  DBMS_MVIEW.REFRESH('my_mat_view_mv','C');
END REFRESH_MV;
Run Code Online (Sandbox Code Playgroud)

(S1917)期待:(; @
IMMEDIATE

CREATE OR REPLACE PROCEDURE REFRESH_MV AS
BEGIN
    EXECUTE IMMEDIATE DBMS_MVIEW.REFRESH('my_mat_view_mv','C');
END REFRESH_MV;

Warning: compiled but with compilation errors
Run Code Online (Sandbox Code Playgroud)

这是一个Oracle 10g XE,希望没问题.

提前致谢 !

DCo*_*kie 11

我想如果你完全消除"exec"它可能会更好."exec"是一个SQL*Plus命令.我试试:

CREATE OR REPLACE PROCEDURE REFRESH_MV AS
BEGIN
    DBMS_MVIEW.REFRESH('my_mat_view_mv','C');
END REFRESH_MV;
Run Code Online (Sandbox Code Playgroud)