可以从雪花中的函数调用存储过程吗

Posted

技术标签:

【中文标题】可以从雪花中的函数调用存储过程吗【英文标题】:Can a stored procedure be called from a function in Snowflake 【发布时间】:2020-12-07 22:23:38 【问题描述】:

我们有一个要求,其中 select 语句返回的结果应该是动态的,基于执行的 select 查询。因此,我们倾向于在将在 select 语句中使用的函数中调用存储过程的解决方案。

问题是:我们可以从 Snowflake 中的函数调用存储过程吗? 语法是什么?

请分享。

【问题讨论】:

您不能从 UDF 调用存储过程。请参阅使用说明,尤其是这部分“因为调用不能是表达式的一部分”:docs.snowflake.com/en/sql-reference/sql/call.html#usage-notes。根据您的需要,您可以使用用户定义的表函数 (UDTF)。你能详细说明一下吗? 【参考方案1】:

我做过类似的事情。虽然不能从 UDF 调用存储过程,但可以从另一个存储过程调用存储过程。

还可以使用任务调用存储过程,并将存储过程的返回值传递给任务,然后将其传递给另一个存储过程调用。

从您的开场评论中,您可能能够使用 javascript 中的 if 语句根据您的规则执行 select 语句来解决您的问题。

您能否提出一个基本的查询示例以及您要做什么?

【讨论】:

以上是关于可以从雪花中的函数调用存储过程吗的主要内容,如果未能解决你的问题,请参考以下文章

我们可以像在 SQL Server 中那样加密雪花中的存储过程吗?

需要从 AWS GLUE 作业调用存储过程

如何在雪花中调用另一个存储过程中的存储过程

雪花存储过程从 dbt 失败

如何评估雪花存储过程中的语句

避免雪花中存储过程的重复