2010-01-28 4 views
0

Je tente d'exécuter une actualisation sur une vue matérialisée, mais je ne peux pas compiler le script.Vue matérialisée d'actualisation Oracle - Erreur de compilation

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

je reçois le message:

ORA-06550: ligne 3, colonne 9: PLS-00103: Rencontrés le symbole "DBMS_MVIEW" en attendant un des suivants:

: =. (@%, Immédiate Le symbole ": =" a été remplacé par "DBMS_MVIEW" continuer

Est-ce que je fais quelque chose de mal besoin d'importer quoi que ce soit

Mise à jour

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

(S1917) Expecting: (; @
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 

Ceci est un Oracle 10g XE, espérons que ce n'est pas un problème.

Merci d'avance!

+0

Je suis sûr que son une de ces erreurs stupides. – Tom

+0

Essayez 'EXECUTE DBMS_MVIEW ...' au lieu de 'EXEC DBMS_MVIEW ...' –

+0

non, toujours pas de compilation :( – Tom

Répondre

10

Je pense que si vous supprimez simplement le "exec" tout à fait, il pourrait fonctionner mieux. "exec" est une commande SQL * Plus. OIEau, essayez:

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

Oui, c'est la façon dont je l'ai réparé Merci – Tom