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

SQL Anywhere 12.0.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 时可以只提供第一个参数,如下所示:

CALL SampleProcedure( V1 );

这时,会对 var2var3 使用缺省值。

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

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

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

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