DECLARE (Snowflake Scripting)¶
声明一个或多个 Snowflake Scripting 变量、光标、RESULTSETs 或异常。
有关变量、光标、RESULTSETs 和异常的详细信息,请参阅:
- 另请参阅:
语法¶
DECLARE
{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> };
[{ <variable_declaration> | <cursor_declaration> | <resultset_declaration> | <exception_declaration> }; ... ]
下文将更详细地描述每种声明类型的语法。
变量声明语法¶
使用以下语法 声明变量。
<variable_declaration> ::=
<variable_name> [<type>] [ { DEFAULT | := } <expression>]
其中:
例如:
profit NUMBER(38, 2) := 0;
有关完整示例,请参阅 示例。
有关变量的更多信息,请参阅 使用变量。
光标声明语法¶
使用以下语法 声明光标。
<cursor_declaration> ::=
<cursor_name> CURSOR FOR <query>
其中:
cursor_name
为光标赋予的名称。这可以是该区块中尚未使用的任何有效 Snowflake 标识符。该标识符由其他与光标相关的命令使用,例如
FETCH
。query
定义光标遍历的结果集的查询。
这几乎可以是任何有效的
SELECT
语句。
例如:
c1 CURSOR FOR SELECT id, price FROM invoices;
有关光标的更多信息(包括完整示例),请参阅 使用游标。
RESULTSET 声明语法¶
使用以下语法 声明 RESULTSET。
<resultset_name> RESULTSET [ { DEFAULT | := } ( <query> ) ] ;
其中:
resultset_name
为 RESULTSET 赋予的名称。
该名称在当前范围内应该是唯一的。
名称必须遵循 对象标识符 的命名规则。
DEFAULT query
或 .:= query
将
query
的值赋给 RESULTSET。
有关 RESULTSETs 的更多信息(包括完整示例),请参阅 处理 RESULTSETs。
异常声明语法¶
使用以下语法 声明异常。
<exception_name> EXCEPTION [ ( <exception_number> , '<exception_message>' ) ] ;
其中:
exception_name
赋予异常的名称。
exception_number
用于唯一标识异常的数字。该数字必须是介于 -20000 和 -20999 之间的整数。该数字不应用于同时存在的任何其他例外情况。
默认值:-20000
exception_message
描述异常的消息。消息不得包含任何双引号字符。
默认值:空字符串。
例如:
exception_could_not_create_table EXCEPTION (-20003, 'ERROR: Could not create table.');
有关异常的更多信息(包括完整示例),请参阅 处理异常。
示例¶
DECLARE profit number(38, 2) DEFAULT 0.0; BEGIN LET cost number(38, 2) := 100.0; LET revenue number(38, 2) DEFAULT 110.0; profit := revenue - cost; RETURN profit; END;注意:如果您在 Python Connector 代码中使用 SnowSQL、Classic Console 或者
execute_stream
或execute_string
方法,请改用本示例(请参阅 在 SnowSQL、Classic Console 和 Python Connector 中使用 Snowflake Scripting):EXECUTE IMMEDIATE $$ DECLARE profit number(38, 2) DEFAULT 0.0; BEGIN LET cost number(38, 2) := 100.0; LET revenue number(38, 2) DEFAULT 110.0; profit := revenue - cost; RETURN profit; END; $$ ;