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-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

CALL-Anweisung

Mit dieser Anweisung rufen Sie Prozeduren auf.

Syntax 1
[Variable = ] CALL Prozedurname ( [ Ausdruck, ... ] )
Syntax 2
[Variable = ] CALL Prozedurname ( [ Parametername = Ausdruck, ... ] )
Bemerkungen

Die CALL-Anweisung ruft eine Prozedur auf, die zuvor mit einer CREATE PROCEDURE-Anweisung erstellt wurde. Wenn die Prozedur abgeschlossen ist, werden sämtliche INOUT- oder OUT-Parameterwerte zurück kopiert.

Die Argumentliste kann nach Position oder durch die Verwendung von Schlüsselwörtern angegeben werden. Bei Angabe nach Position wird den Argumenten der für diese Prozedur entsprechende Parameter aus der Parameterliste zugeordnet. Bei Angabe nach Schlüsselwörtern werden den Argumenten die benannten Parameter zugeordnet.

Prozedurargumenten können in der CREATE PROCEDURE-Anweisung Standardwerte zugewiesen werden, und fehlenden Parametern wird der Standardwert zugeordnet. Falls kein Standardwert gesetzt und kein Argument angegeben sind, wird ein Fehler ausgegeben.

Innerhalb einer Prozedur kann eine CALL-Anweisung in einer DECLARE-Anweisung verwendet werden, wenn die Prozedur Ergebnismengen zurückgibt. Weitere Hinweise finden Sie unter Ergebnisse aus Prozeduren zurückgeben.

Mit der RETURN-Anweisung können Prozeduren einen Ganzzahlwert zurückgeben (zum Beispiel als Zustandsindikator). Sie können diesen Rückgabewert in einer Variablen speichern, indem Sie das Gleichheitszeichen als Zuordnungsoperator verwenden:

CREATE VARIABLE returnval INT;
returnval = CALL proc_integer ( arg1 = val1, ... )
Hinweis

Wenn die aufgerufene Prozedur INT zurückgibt und der Wert NULL ist, wird der Fehlerstatus, Wert 0, anstelle dessen zurückgegeben. Es gibt keine Möglichkeit, zwischen diesem Fall und dem Fall zu unterscheiden, bei dem tatsächlich ein Wert 0 zurückgegeben wird.

Berechtigungen

Sie müssen Eigentümer der Prozedur sein oder EXECUTE-Berechtigungen für diese Prozedur bzw. DBA-Berechtigungen besitzen.

Nebenwirkungen

Keine.

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Persistent Stored Module-Funktion.

Beispiel

Die ShowCustomers-Prozedur wird aufgerufen. Diese Prozedur hat keine Parameter und gibt eine Ergebnismenge zurück.

CALL ShowCustomers();

Das folgende Interactive SQL-Beispiel erstellt eine Prozedur, welche die Anzahl der erteilten Aufträge eines Kunden mit vorgegebener Kennung zurückgibt, eine Variable erstellt, um das Ergebnis aufzunehmen, die Prozedur aufruft und das Ergebnis anzeigt.

CREATE PROCEDURE OrderCount (IN customer_ID INT, OUT Orders INT)
BEGIN
   SELECT COUNT(SalesOrders.ID)
   INTO Orders
   FROM Customers
   KEY LEFT OUTER JOIN SalesOrders
   WHERE Customers.ID = customer_ID;
END
go
 -- Create a variable to hold the result
CREATE VARIABLE Orders INT
go
-- Call the procedure, FOR customer 101
CALL OrderCount ( 101, Orders )
go
--  Display the result
SELECT Orders FROM DUMMY
go