it-swarm.com.de

ORA-00900: Ungültige SQL-Anweisung, wenn eine Prozedur in Oracle 10g ausgeführt wird

Ich verwende die Oracle 10g-Datenbank und versuche, eine Prozedur mit SQL-Befehlen auszuführen.

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

Klicken Sie dann auf die Schaltfläche Ausführen. Es zeigt: "Prozedur erstellt".

Wenn ich versuche, es auszuführen, verwenden Sie:

execute exam;

klicken Sie dann auf die Schaltfläche Ausführen, es zeigt:

ORA-00900: invalid SQL statement

Danke für Ihre Hilfe.

12
kumar

Ich habe gerade ein Detail in Ihrer Frage bemerkt. Sie drücken die Taste run. Sie müssen also eine IDE verwenden.

Sie können execute nicht in IDEs verwenden - es ist ein sql*plus Befehl. Es könnte in Oracle SQL Developer funktionieren, aber ich würde es dort sowieso nicht verwenden;

Versuchen

begin
  exam;
end;
16
be here now

Verlieren Sie die Anführungszeichen um den Namen. Sie sind eine schlechte Praxis in Oracle.

1
David Aldridge

Siehe: Syntaxfehler beim Aufruf eines Oracle-Pakets mit ODBC in C #

Sie müssen "{" und "}" vor dem Befehl ..__ setzen. Beispiel:

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