【问题标题】:Oracle refresh materialized view - Compile errorOracle 刷新物化视图 - 编译错误
【发布时间】:2011-01-10 13:21:24
【问题描述】:

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

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”当期望其中之一时 以下:

:= 。 (@%;立即符号 ":=" 替换为 "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,希望没问题。

提前致谢!

【问题讨论】:

  • 我确定这是那些愚蠢的错误之一。
  • 尝试EXECUTE DBMS_MVIEW... 而不是EXEC DBMS_MVIEW...

标签: oracle plsql materialized-views ora-06550


【解决方案1】:

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

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

【讨论】:

  • 是的,这就是我修复它的方式。谢谢
猜你喜欢
  • 2012-07-04
  • 2012-07-18
  • 2016-06-14
  • 2010-09-27
  • 1970-01-01
  • 2018-04-20
  • 2021-01-13
  • 2017-01-24
  • 1970-01-01
相关资源
最近更新 更多