我们可以将列表或数组作为参数传递给雪花中的JavaScript过程吗



我们可以将list或array作为参数传递给雪花中的javascript过程吗?

我正在进行一个程序,该程序将每周运行一次,并从某些表中删除一周前的数据。我不想为单个表创建任务,而是想将表名作为列表/数组传递。

请引导。

提前感谢!

是的,您可以将数组传递到Snowflake JavaScript存储过程中。这是一个示例:

create or replace procedure test(ARR array)
returns string
language javascript
as
$$
var i; 
var out = "";
// Remember to capitalize variables input to the stored procedure definition
for(i = 0; i < ARR.length; i++){       
out += ARR[i];
if (i < ARR.length - 1) out += ", ";
}
return out;
$$;

call test(array_construct('TABLE_1', 'TABLE_2', 'TABLE_3'));

我为此挣扎了一段时间,并提出了一个很好的1行,使数组可以通过过程进行消化。

myArr = "array_construct('" + MyArr.join("', '") + "')"

然后可以将其插入任何类似的调用语句中

var sql_command = `call my_proc(${myArr});`

希望这能帮助其他偶然发现这一点的人!

最新更新