我们可以在雪花脚本中使用动态 sql 吗?

can we use dynamic sql in snowflake scripting?

出于多种原因,我们在 Snowflake 存储过程中广泛使用动态 SQL。

其中之一是我们有几个数据库,每个数据库都以环境名称为前缀。 像 PROD_DB1、PROD_DB2 等...

我们的代码并不特定于一个环境,因此我们所有的存储过程都首先检查它们在哪个环境中执行(查看 CURRENT_DATABASE() 的前缀)。 然后我们在做跨数据库的事情时相应地调整我们的 table/view 名称。

这只是动态 SQL 的各种原因之一。

有没有办法在 Snowflake SQL 中执行此类操作(与使用 javascript 的存储过程相反)?

Is there a way to do this sort of things in Snowflake SQL (as opposed to Stored procedures using javascript)?

是的,可以构建任意查询并使用 Snowflake 脚本执行它。 EXECUTE IMMEDIATE:

Executes a string that contains a SQL statement or a Snowflake Scripting statement.

EXECUTE IMMEDIATE '<string_literal>'
 [ USING (bind_variable_1 [, bind_variable_2 ...] ) ] ;

相关:,