Gespeicherte Prozeduren von Oracle sind eine Abfragesprache, die eine Reihe von SQL-Anweisungen in einem einzigen Codeblock wiederholt ausführt. Der Vorteil gespeicherter Prozeduren besteht darin, dass Sie den geschriebenen und getesteten SQL-Code wiederverwenden, den Schreibprozess von SQL-Anweisungen vereinfachen und die Ausführungseffizienz des Codes verbessern können. Aber manchmal müssen wir bestimmte Werte oder Ergebnisse aus der gespeicherten Prozedur abrufen. Dies erfordert die Verwendung des Rückgabewerts der gespeicherten Prozedur.
Der Rückgabewert einer gespeicherten Prozedur kann ein numerischer Wert, eine Zeichenfolge, ein Datum oder ein boolescher Wert sein. Rückgabewerte von gespeicherten Prozeduren tragen dazu bei, Ihren Code benutzerfreundlicher, lesbarer und wiederverwendbar zu machen.
Der Rückgabewert der gespeicherten Oracle-Prozedur hat keinen offensichtlichen Rückgabewerttyp wie eine Funktion. Daher muss in der gespeicherten Prozedur der Wert über OUT- oder IN OUT-Parameter an das Programm übergeben werden, das ihn aufruft.
In Oracle kann der Rückgabewert einer gespeicherten Prozedur über OUT- oder IN OUT-Parameter zurückgegeben werden. OUT- oder IN-OUT-Parameter ermöglichen es einer gespeicherten Prozedur, einen Ergebniswert zurückzugeben oder den Wert eines Eingabeparameters an eine gespeicherte Prozedur zu übergeben, und ermöglichen der gespeicherten Prozedur und dem aufrufenden Programm, in Bezug auf diese Werte zu interagieren.
Hier ist eine einfache gespeicherte Prozedur, die das Produkt zweier Werte ausgibt:
CREATE OR REPLACE PROCEDURE SP_MULTIPLY (input1 IN NUMBER, input2 IN NUMBER, result OUT NUMBER) AS BEGIN result := input1 * input2; END;
In dieser gespeicherten Prozedur akzeptieren wir zwei Eingabeparameter input1 und input2 und speichern ihr Produkt in der Ergebnisvariablen, die als OUT-Parameter zurückgegeben werden.
Die gespeicherte Prozedur wird wie folgt aufgerufen:
DECLARE output NUMBER; BEGIN SP_MULTIPLY(5, 10, output); DBMS_OUTPUT.PUT_LINE('The product is ' || output); END;
Beim Aufruf der gespeicherten Prozedur müssen wir eine variable Ausgabe deklarieren, diese als OUT-Parameter an die gespeicherte Prozedur SP_MULTIPLY übergeben und das Ergebnis speichern. Nachdem die gespeicherte Prozedur zurückgegeben wurde, können wir DBMS_OUTPUT.PUT_LINE aufrufen, um die Ergebnisse auszugeben.
Zusätzlich zu OUT-Parametern können gespeicherte Prozeduren auch IN OUT-Parameter zum Datenaustausch zwischen der gespeicherten Prozedur und dem aufrufenden Programm verwenden. In der folgenden gespeicherten Prozedur akzeptieren wir beispielsweise einen numerischen Wert als Eingabe, addieren ihn zu einem vorhandenen numerischen Wert und geben das Ergebnis zurück, indem wir es im Parameter OUT speichern.
CREATE OR REPLACE PROCEDURE SP_ADD (input IN NUMBER, result IN OUT NUMBER) AS BEGIN result := result + input; END;
Der Aufruf dieser gespeicherten Prozedur ist wie folgt:
DECLARE output NUMBER := 10; BEGIN SP_ADD(5, output); DBMS_OUTPUT.PUT_LINE('The result is ' || output); END;
Während des Aufrufs der gespeicherten Prozedur übergeben wir einen numerischen Wert als Eingabe und übergeben außerdem eine weitere numerische Variablenausgabe als IN OUT-Parameter. Nachdem die gespeicherte Prozedur ausgeführt wurde, enthält die Ergebnisvariable das Endergebnis.
Zusammenfassend lässt sich sagen, dass der Rückgabewert einer gespeicherten Prozedur über OUT- oder IN OUT-Parameter zurückgegeben werden kann. OUT- oder IN-OUT-Parameter ermöglichen es einer gespeicherten Prozedur, einen Ergebniswert zurückzugeben oder den Wert eines Eingabeparameters an eine gespeicherte Prozedur zu übergeben, und ermöglichen der gespeicherten Prozedur und dem aufrufenden Programm, in Bezug auf diese Werte zu interagieren. Beim Schreiben einer gespeicherten Prozedur müssen wir besonders auf den Typ und die Übermittlungsmethode der Parameter achten, um den Rückgabewert der gespeicherten Prozedur korrekt zu verwenden.
Das obige ist der detaillierte Inhalt vonRückgabewert der gespeicherten Oracle-Prozedur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!