Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Gespeicherte Prozeduren und Trigger » Prozeduren, Trigger und Batches verwenden » Ergebnisse aus Prozeduren zurückgeben

 

Ergebnisse als Prozedurparameter zurückgeben

Prozeduren können Ergebnisse in den Parametern für die Prozedur an die aufrufende Umgebung zurückgeben.

In einer Prozedur können mithilfe einer der folgenden Methoden Parametern und Variablen Werte zugeordnet werden:

  • SET-Anweisung

  • SELECT-Anweisung mit einer INTO-Klausel

SET-Anweisung verwenden

In der nachstehenden Prozedur wird ein Wert in einem OUT-Parameter zurückgegeben, wobei der Wert mit einer SET-Anweisung zugeordnet wird.

CREATE PROCEDURE greater( 
   IN a INT,
   IN b INT,
   OUT c INT )
BEGIN
   IF a > b THEN
      SET c = a;
   ELSE
      SET c = b;
   END IF ;
END;
SELECT-Anweisungen mit einer Zeile verwenden

Einzeilige Abfragen fragen maximal eine Zeile aus der Datenbank ab. Dieser Typ einer Abfrage wird durch eine SELECT-Anweisung mit einer INTO-Klausel durchgeführt. Die INTO-Klausel folgt auf die Auswahlliste und steht vor der FROM-Klausel. Sie enthält eine Liste der Variable, die den Wert jedes Elements aus der Auswahlliste enthalten sollen. Es muss so viele Variable wie Elemente in der Auswahlliste geben.

Wenn eine SELECT-Anweisung ausgeführt wird, holt der Server die Ergebnisse der SELECT-Anweisung und setzt sie in Variable. Wenn die Abfrageergebnisse mehr als eine Zeile enthalten, gibt der Server einen Fehler zurück. Für Abfragen, die mehr als eine Zeile zurückgeben, muss ein Cursor verwendet werden. Hinweise über die Rückgabe von mehr als einer Zeile von einer Prozedur finden Sie unter Ergebnismengen von Prozeduren zurückgeben.

Wenn die Abfrage dazu führt, dass keine Zeilen ausgewählt werden, wird eine Warnung zurückgegeben.

Die folgende Prozedur gibt die Ergebnisse einer Einzeilen-SELECT-Anweisung in den Prozedurparametern zurück.

♦  So geben Sie die Anzahl von Bestellungen aus, die von einem bestimmten Kunden aufgegeben wurden

Sie können diese Prozedur in Interactive SQL mit den folgenden Anweisungen testen, die die Anzahl der Bestellungen zeigen, die vom Kunden mit der ID 102 aufgegeben wurden:

CREATE VARIABLE orders INT;
CALL OrderCount ( 102, orders );
SELECT orders;
Hinweise
  • Der customer_ID-Parameter wird als ein IN-Parameter deklariert. Dieser Parameter hält die Kundenkennung, die an die Prozedur weitergegeben wird.

  • Der Orders-Parameter wird als ein OUT-Parameter deklariert. Er enthält den Wert der Bestellungsvariablen, die an die aufrufende Umgebung zurückgegeben wurde.

  • Für die Variable Orders ist keine DECLARE-Anweisung erforderlich, da sie in der Argumentliste der Prozedur deklariert wurde.

  • Die SELECT-Anweisung gibt eine einzelne Zeile zurück und setzt sie in die Variable Orders.