Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 存储过程、触发器、批处理和用户定义的函数 » 过程、触发器和用户定义函数的结构

 

将参数传递给过程的方法

您可以通过 CALL 语句的两种形式之一利用存储过程参数的缺省值的优越性。

位于 CREATE PROCEDURE 语句参数列表末尾的可选参数可以在 CALL 语句中省略。例如,假定有以下具有三个 INOUT 参数的过程:

CREATE PROCEDURE SampleProcedure( 
       INOUT var1 INT DEFAULT 1,
                     INOUT var2 int DEFAULT 2,
                     INOUT var3 int DEFAULT 3 )
...

此示例假定调用环境已设置了三个变量来保存传递给过程的值:

CREATE VARIABLE V1 INT;
CREATE VARIABLE V2 INT;
CREATE VARIABLE V3 INT;

可以调用过程 SampleProcedure,仅提供第一个参数,如下所示。在这种情况下,参数 var2var3 使用缺省值。

CALL SampleProcedure( V1 );

也可以通过使用第一个参数的 DEFAULT 值,并指定第二个参数的方法调用这个过程。如下所示:

CALL SampleProcedure( DEFAULT, V2 );

以可选参数调用过程的更灵活方法是按名称传递这些参数。可按如下所示调用 SampleProcedure 过程:

CALL SampleProcedure( var1 = V1, var3 = V3 );

或按如下所示调用该过程:

CALL SampleProcedure( var3 = V3, var1 = V1 );