2010-01-28 4 views
0

Im пытается выполнить обновление на материализованном виде, но я не могу получить скрипт для компиляции.Oracle refresh materialized view - Compile error

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" продолжить

я делаю что-то неправильно нужно импортировать ничего

Update

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, надеюсь, что проблем нет.

Заранее благодарен!

+0

Я уверен, что это одна из этих глупых ошибок. – Tom

+0

Попробуйте 'EXECUTE DBMS_MVIEW ...' вместо 'EXEC DBMS_MVIEW ...' –

+0

nope, все еще не компилируя :( – Tom

ответ

10

Я думаю, что если вы просто исключите «exec» вообще, это может сработать лучше. «exec» - это команда SQL * Plus. IOW, попробуйте:

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

Да, это так, как я его исправил. Спасибо – Tom