1

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

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

我收到消息:

ORA-06550:第 3 行,第 9 列:PLS-00103:在预期以下情况之一时遇到符号“DBMS_MVIEW”:

:= 。( @ % ; immediate 符号 ":=" 被替换为 "DBMS_MVIEW" 以继续。

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

更新

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

(S1917) 期待:( ; @
立即

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

这是Oracle 10g XE,希望没问题。

提前致谢 !

4

1 回答 1

12

我认为如果您完全消除“执行”,它可能会更好。“exec”是一个 SQL*Plus 命令。IOW,尝试:

CREATE OR REPLACE PROCEDURE REFRESH_MV AS
BEGIN
    DBMS_MVIEW.REFRESH('my_mat_view_mv','C');
END REFRESH_MV;
于 2010-01-28T20:22:55.807 回答