SQL Anywhere 支持局部变量。局部变量是使用 DECLARE 语句声明的,它们只能用在复合语句(即用关键字 BEGIN 和 END 括起来的语句)内。在 SQL Anywhere 中,每个 DECLARE 语句只能声明一个变量。
如果在复合语句内执行 DECLARE 语句,作用域仅限于该复合语句。
这类变量最初被设置为 NULL。变量值可以用 SET 语句进行设置,或用带有 INTO 子句的 SELECT 语句指派。
DECLARE 语句的语法如下:
DECLARE variable-name data-type |
局部变量可作为参数传递给过程,只要该过程是从复合语句内调用的。
下面的批处理语句说明了如何使用局部变量。
BEGIN DECLARE local_var INT; SET local_var = 10; MESSAGE 'local_var = ', local_var TO CLIENT; END |
从 Interactive SQL 运行此批处理语句时,Interactive SQL 的 [消息] 选项卡中会出现 local_var = 10
消息。
变量 local_var 在声明此变量的复合语句外部不存在。下面的批处理语句无效,会出现 column not found
错误。
-- This batch is invalid. BEGIN DECLARE local_var INT; SET local_var = 10; END; MESSAGE 'local_var = ', local_var TO CLIENT; |
下例说明了如何用带有 INTO 子句的 SELECT 语句设置局部变量的值:
BEGIN DECLARE local_var INT; SELECT 10 INTO local_var; MESSAGE 'local_var = ', local_var TO CLIENT; END |
从 Interactive SQL 运行此批处理语句时,数据库服务器的消息窗口中会出现 local_var = 10
消息。
有关批处理和局部变量作用域的详细信息,请参见Transact-SQL 过程中的变量。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |