EXECUTE IMMEDIATE¶
执行包含 SQL 语句或 Snowflake Scripting 语句 的字符串。
您可以使用 EXECUTE IMMEDIATE 执行以下操作:
在 Snowflake Scripting 块中,执行动态 SQL,其中部分 SQL 语句在运行时前是未知的。有关示例,请参阅 在 Snowflake Scripting 块中执行动态 SQL。
将会话变量设置为 SQL 语句,并引用会话变量来运行 SQL 语句。有关示例,请参阅 将会话变量设置为语句并执行它。
If you are using SnowSQL or Snowsight, run a Snowflake Scripting anonymous block. For an example, see Running an anonymous block in SnowSQL or Snowsight.
语法¶
必填参数¶
可选参数¶
USING ( bind_variable [ , bind_variable ... ] )指定一个或多个绑定变量,这些变量保存要在游标的查询定义中(例如,在 WHERE 子句中)使用的值。
返回¶
EXECUTE IMMEDIATE 返回已执行语句的结果。例如,如果字符串或变量包含 SELECT 语句,则返回 SELECT 语句的结果集。
使用说明¶
string_literal、variable或session_variable必须只包含一个语句。(一个 块 被视为一个语句,即使该块的主体包含多个语句。)session_variable前面必须有一个美元符号 ($)。局部
variable前面 不得 有美元符号 ($)。
示例¶
下面是使用 EXECUTE IMMEDIATE 命令的示例。
在 Snowflake Scripting 块中执行动态 SQL¶
以下示例在 Snowflake Scripting 块中执行动态 SQL。
执行包含变量的语句¶
此示例将执行在 Snowflake Scripting 存储过程中两个局部变量中定义的语句。此示例也表明,EXECUTE IMMEDIATE 不仅适用于字符串字面量,还适用于计算结果为字符串 (VARCHAR) 的表达式。
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
调用存储过程:
执行包含绑定变量的语句¶
此示例使用 EXECUTE IMMEDIATE 执行 Snowflake Scripting 存储过程中 USING 参数中包含绑定变量的 SELECT 语句。首先,创建表并插入数据:
创建存储过程:
Note: If you use Snowflake CLI, SnowSQL, the Classic Console, or the
execute_stream or execute_string method in Python Connector
code, use this example instead (see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector):
调用存储过程:
将会话变量设置为语句并执行它¶
此示例执行会话变量中定义的语句:
Running an anonymous block in SnowSQL or Snowsight¶
When you run a Snowflake Scripting anonymous block in SnowSQL or Snowsight, you must specify the block as a string literal (delimited by single quotes or double dollar signs), and you must pass the block to the EXECUTE IMMEDIATE command. For more information, see Using Snowflake Scripting in Snowflake CLI, SnowSQL, and Python Connector.
此示例会运行传递给 EXECUTE IMMEDIATE 命令的匿名块: