5 Stimmen

Was ist die richtige Syntax, um einen PL/SQL-Prozeduraufruf in mehreren Zeilen zu unterbrechen?

Ich rufe eine PL/SQL-Prozedur wie folgt auf:

execute util.verify(src_schema => '&username',
                    stab       => '&tab_name');

und ich erhalte diese Fehler:

SQL> execute util.verify(src_schema => '&username',
BEGIN util.verify(src_schema => 'u1',; END;

                                     *
ERROR at line 1:
ORA-06550: line 1, column 57: 
PLS-00103: Encountered the symbol ";" when expecting one of the following:
( - + case mod new not null <an identifier>
<a double-quoted delimited-identifier> <a bind variable>
continue avg count current exists max min prior sql stddev
sum variance execute forall merge time timestamp interval
date <a string literal with character set specification>
<a number> <a single-quoted SQL string> pipe
<an alternatively-quoted string literal with character set specification>
<an alternatively

SQL>                   stab       => '&tab_name',
SP2-0734: unknown command beginning "stab      ..." - rest of line ignored.

Es sieht so aus, als ob ich den Aufruf nicht einfach zwischendurch bei einer , . Wie kann ich diesen Aufruf in mehreren Zeilen schreiben?

12voto

Ronnis Punkte 12252

In SQLPlus setzen Sie einen Bindestrich an das Ende von Zeilen, der in der nächsten Zeile fortgesetzt wird.

execute util.verify(src_schema => '&username', -
                    stab       => '&tab_name');

Update : Link zur Dokumentation hinzugefügt

EXECUTE, SQL*Plus® Benutzerhandbuch und Referenz

8voto

bernd_k Punkte 10952

Es gibt eine andere Möglichkeit, etwa die folgende:

begin
    util.verify(src_schema => '&username',
                    stab       => '&tab_name');
end;
/

6voto

Codo Punkte 70076

execute xxxx; (oder exec xxxx; ) ist eine Abkürzung für das Schreiben von begin xxxx; end;

Es funktioniert nur bei Einzeilern. Wenn Sie also mehrere Zeilen haben, müssen Sie explizit begin y end .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X