Mit dieser Anweisung rufen Sie Prozeduren auf.
[Variable = ] CALL Prozedurname ( [ Ausdruck, ... ] )
[Variable = ] CALL Prozedurname ( [ Parametername = Ausdruck, ... ] )
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, ... ) |
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.
Sie müssen Eigentümer der Prozedur sein oder EXECUTE-Berechtigungen für diese Prozedur bzw. DBA-Berechtigungen besitzen.
Keine.
SQL/2003 Persistent Stored Module-Funktion.
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 |
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |