プロシージャーパラメーターは、CREATE PROCEDURE 文にリストとして表示されます。パラメーター名は、カラム名など他のデータベース識別子に対するルールに従って付けてください。パラメーターは有効なデータ型で、キーワード IN、OUT、INOUT のいずれかのプレフィクスが付いています。デフォルトでは、パラメーターは INOUT パラメーターです。これらのキーワードには、次のような意味があります。
IN 引数はプロシージャーに値を提供する式です。
OUT 引数はプロシージャーから値を与えられる変数です。
INOUT 引数はプロシージャーに値を提供する変数で、プロシージャーから新しい値を与えられることもあります。
CREATE PROCEDURE 文中のプロシージャーパラメーターにはデフォルト値を設定できます。デフォルト値は定数で、NULL でもかまいません。たとえば、次に示すプロシージャーは、IN パラメーターのデフォルトとして NULL を指定しています。これは意味のないクエリを実行するのを避けるためです。
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; |
次に示す文は DEFAULT NULL を割り当て、プロシージャーはクエリを実行しないで戻ります。
CALL CustomerProducts(); |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |