Prozedurparameter werden als Liste in der Anweisung CREATE PROCEDURE übergeben. Parameternamen müssen den Regeln für andere Datenbankbezeichner, wie z.B. Spaltennamen, entsprechen. Sie müssen einen gültigen Datentyp haben, (siehe SQL-Datentypen), und es kann ihnen eines der folgenden Schlüsselwörter vorangehen: IN, OUT oder INOUT. Standardmäßig sind Parameter INOUT-Parameter. Diese Schlüsselwörter haben folgende Bedeutungen:
IN Das Argument ist ein Ausdruck, der für die Prozedur einen Wert bereitstellt.
OUT Das Argument ist eine Variable, der von der Prozedur ein Wert verliehen werden kann.
INOUT Das Argument ist eine Variable, die der Prozedur einen Wert liefert, und deren Wert von der Prozedur geändert werden kann.
Sie können Prozedurparametern in der Anweisung CREATE PROCEDURE Standardwerte verleihen. Der Standardwert muss eine Konstante, darf aber auch NULL sein. Beispiel: Die folgende Prozedur benutzt NULL als Standardwert für einen IN-Parameter, damit nicht eine Abfrage ausgeführt wird, die keinen Sinn ergibt:
CREATE PROCEDURE CustomerProducts( IN customer_ID INTEGER DEFAULT NULL ) RESULT ( product_ID INTEGER, quantity_ordered INTEGER ) BEGIN IF customer_ID IS NULL THEN RETURN; ELSE SELECT Products.ID, sum( SalesOrderItems.Quantity ) FROM Products, SalesOrderItems, SalesOrders WHERE SalesOrders.CustomerID = customer_ID AND SalesOrders.ID = SalesOrderItems.ID AND SalesOrderItems.ProductID = Products.ID GROUP BY Products.ID; END IF; END; |
Die folgende Anweisung weist den Standardwert NULL zu, und die Prozedur führt eine Rückgabe durch, anstatt die Abfrage auszuführen.
CALL CustomerProducts(); |
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 |