web-dev-qa-db-fra.com

Comment exécuter une procédure stockée Oracle?

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

46
FlintOff

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.)

71
Thorsten

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.

3
Jeffrey Kemp

'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.

2
Jim Gettman