J'utilise Oracle 10g Express Edition. Il a une belle interface utilisateur pour les développeurs de base de données. Mais je suis confronté à des problèmes d’exécution de procédures stockées.
Procédure:
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.PUT_LINE('Test');
end
il est créé avec succès. Mais quand j'exécute:
execute temp_proc;
il montre ORA-00900: instruction SQL non valide
Donc, besoin d'aide ici
Execute
est la syntaxe sql * plus .. essayez d'emballer votre appel dans begin .. end comme suit:
begin
temp_proc;
end;
(Bien que Jeffrey indique que cela ne fonctionne pas dans APEX .. mais vous essayez de l'exécuter dans SQLDeveloper .. essayez le menu "Exécuter" ici.)
Oracle 10g Express Edition est livré avec Oracle Application Express (Apex) intégré. Vous l'exécutez dans sa fenêtre Commandes SQL, qui ne prend pas en charge la syntaxe SQL * Plus.
Cela n'a pas d'importance, car (comme vous l'avez découvert), la syntaxe BEGIN ... END fonctionne dans Apex.
'Is' et 'as' sont tous deux une syntaxe valide. La sortie est désactivé par défaut. Essayez une procédure qui active également la sortie ...
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.ENABLE(1000000);
DBMS_OUTPUT.PUT_LINE('Test');
end;
... et appelez-le dans un bloc PLSQL ...
begin
temp_proc;
end;
... comme SQL n'est pas procédural.