过程参数在 CREATE PROCEDURE 语句中以列表形式出现。参数名必须符合其它数据库标识符(如列名)的规则。它们必须具有有效数据类型,并且可以用关键字 IN、OUT 或 INOUT 作为前缀。缺省情况下,参数是 INOUT 参数。这些关键字具有以下含义:
IN 此参数是一个为过程提供值的表达式。
OUT 此参数是一个可由过程为其赋值的变量。
INOUT 此参数是一个为过程提供值的变量,并且可以由过程为其赋予新值。
可以在 CREATE PROCEDURE 语句中将缺省值指派给过程参数。缺省值必须是常量,可以是空值。例如,以下过程对一个 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 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |