【发布时间】:2021-04-20 18:42:55
【问题描述】:
我正在 Snowflake 中创建一个存储过程,最终将被任务调用。
但是我收到以下错误:
不支持单个 API 调用中的多个 SQL 语句;每条语句使用一个 API 调用
并且不确定如何在我的 Javascript 实现中处理建议的解决方案。
这就是我所拥有的
CREATE OR REPLACE PROCEDURE myStoreProcName()
RETURNS VARCHAR
LANGUAGE javascript
AS
$$
var rs = snowflake.execute( { sqlText:
`set curr_date = '2015-01-01';
CREATE OR REPLACE TABLE myTableName AS
with cte1 as (
SELECT
*
FROM Table1
where date = $curr_date
)
,cte2 as (
SELECT
*
FROM Table2
where date = $curr_date
)
select * from
cte1 as 1
inner join cte2 as 2
on(1.key = 2.key)
`
} );
return 'Done.';
$$;
【问题讨论】:
-
每个 sql 语句都需要一条语句,例如“rs = snowflake.execute...”。您可以在 SP 中拥有任意数量的这些语句
-
是否会捕获我设置的变量并将其传播到其他查询?
-
两个 $$ 之间的所有内容都需要是一组有效的 javascript 语句 - 你不能只编写 SQL 语句。我认为您可能需要阅读文档,因为它提供了一些关于如何编写 SP 的好例子
-
感谢@NickW,我没有在文档中看到多 sql 查询存储 proc 示例。
标签: snowflake-cloud-data-platform