gpt4 book ai didi

sql - 用户定义函数参数中的 Snowflake 架构和表引用

转载 作者:行者123 更新时间:2023-12-04 17:07:29 24 4
gpt4 key购买 nike

我正在尝试在 Snowflake 中创建一个用户定义函数 (UDF),其中参数可以将架构、表和列值作为变量,以便该函数可以动态调用不同的表。我尝试这样做并保存函数,但 Snowflake 抛出一个错误,指出模式名称不存在 - 它试图使用参数名称而不是将输入到函数参数中的变量来查找模式。

这是我正在尝试做的一个例子:

CREATE OR REPLACE FUNCTION "DB_NAME"."SCHEMA_NAME"."FUNCTION_NAME"(
SCHEMA_VAR VARCHAR,
TABLE_VAR VARCHAR,
COLUMN_VAR VARCHAR)
RETURNS TABLE (RETURN_COL VARCHAR)
AS
$$
SELECT COLUMN_VAR FROM "DB_NAME".SCHEMA_VAR.TABLE_VAR
$$;

最佳答案

您所描述的是动态 SQL,它只允许来自 stored procedur e, 不是函数。

在普通 SQL 中,您可以使用 TABLE LITERAL从运行 SQL 的代码的角度来看具有动态命名表,但是您也可以只在代码中进行字符串操作,但这种方法使其注入(inject)安全。

关于sql - 用户定义函数参数中的 Snowflake 架构和表引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70266937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com