web-dev-qa-db-fra.com

ORA-00900: instruction SQL non valide lors de l'exécution d'une procédure dans Oracle 10g

J'utilise la base de données Oracle 10g et j'essaie d'exécuter une procédure à l'aide de commandes SQL.

create or replace procedure "exam" is
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;

Puis cliquez sur le bouton Exécuter. Cela montre: "procédure créée".

Quand j'essaye de l'exécuter en utilisant:

execute exam;

puis cliquez sur le bouton Exécuter, il affiche:

ORA-00900: invalid SQL statement

Merci de votre aide.

12
kumar

Je viens de remarquer un détail dans votre question. Vous appuyez sur le bouton run. Ainsi, vous devez utiliser un IDE. 

Vous ne pouvez pas utiliser execute dans les IDE - c’est une commande sql*plus. Cela fonctionne peut-être avec Oracle SQL Developer, mais je ne l’utiliserais pas de toute façon;

Essayer 

begin
  exam;
end;
16
be here now

Perdez les guillemets autour du nom. Ils sont une mauvaise pratique dans Oracle.

1
David Aldridge

Voir: Erreur de syntaxe lors de la tentative d'appel d'un package Oracle à l'aide de ODBC en C #

Vous devez mettre "{" et "}" avant la commande . Exemple:

    processListCmd.CommandType = CommandType.StoredProcedure;
    processListCmd.CommandText = "{ call rep_invnr_proclist }";
    processListCmd.ExecuteNonQuery();
1
Michael Kremser