wake-up-neo.com

Wie führe ich eine gespeicherte Oracle-Prozedur aus?

Ich verwende die Oracle 10g Express Edition. Es hat eine schöne Benutzeroberfläche für DB-Entwickler. Aber ich stehe vor einigen Problemen, gespeicherte Prozeduren auszuführen.

Verfahren:

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

es wird erfolgreich erstellt. Aber wenn ich ausführe:

execute temp_proc;

es zeigt ORA-00900: ungültige SQL-Anweisung

Also brauche hier Hilfe

46
FlintOff

Execute ist sql * plus Syntax. Versuchen Sie, Ihren Anruf in begin zu schreiben.

begin 
    temp_proc;
end;

(Jeffrey sagt zwar, dass dies in APEX nicht funktioniert, aber Sie versuchen, dies in SQLDeveloper zum Laufen zu bringen. Versuchen Sie dort das Menü 'Ausführen'.)

71
Thorsten

Oracle 10g Express Edition wird mit integriertem Oracle Application Express (Apex) ausgeliefert. Sie führen dies in seinem SQL-Befehlsfenster aus, das die SQL * Plus-Syntax nicht unterstützt.

Das spielt keine Rolle, da (wie Sie festgestellt haben) die BEGIN ... END-Syntax in Apex funktioniert.

3
Jeffrey Kemp

Sowohl 'is' als auch 'as' sind gültige Syntax. Die Ausgabe ist standardmäßig deaktiviert. Versuchen Sie es mit einer Prozedur, die auch die Ausgabe aktiviert ...

create or replace procedure temp_proc is
begin
  DBMS_OUTPUT.ENABLE(1000000);
  DBMS_OUTPUT.PUT_LINE('Test');
end;

... und in einem PLSQL-Block aufrufen ...

begin
  temp_proc;
end;

... da SQL nicht prozedural ist.

2
Jim Gettman