【问题标题】:Snowflake: Procedure with ARRAY parameter called from another procedure雪花:从另一个过程调用的带有 ARRAY 参数的过程
【发布时间】:2021-10-31 04:51:06
【问题描述】:

我想将数组绑定到过程中的调用。

我收到以下错误消息:

存储过程 TEST_CALL_DO_WITH_ARR 中的执行错误:无效的绑定参数Gabi、Klaus、Sabine。
错误:绑定参数 2undefined 的类型不受支持在 Snowflake.execute,第 2 行位置 25

CREATE OR REPLACE PROCEDURE Test_DO_WITH_ARR(ARR ARRAY )
RETURNS VARIANT
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS
$$
    // Do something with the Array
    return 'OK' ;
$$
;


CREATE OR REPLACE PROCEDURE Test_CALL_DO_WITH_ARR()
RETURNS VARIANT
LANGUAGE JAVASCRIPT
EXECUTE AS CALLER
AS
$$
    var Param_ARRAY =  ['Gabi','Klaus','Sabine'] ;
    var stmt = snowflake.execute({ sqlText: "CALL Test_DO_WITH_ARR(:1)", binds: [Param_ARRAY] });
    return stmt ;
$$
;

CALL Test_CALL_DO_WITH_ARR() ;

【问题讨论】:

    标签: javascript arrays binding snowflake-sql


    【解决方案1】:

    目前,JS 中的雪花存储过程仅支持 number、stringSfDate 作为绑定变量,如我们的文档中所述:

    https://docs.snowflake.com/en/sql-reference/stored-procedures-usage.html#binding-variables

    目前,只有数字、字符串和类型的 JavaScript 变量 SfDate 可以绑定。

    解决方法是作为字符串传递,并在内部函数调用中使用 JS 将它们转换为数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-17
      • 2020-05-23
      • 2020-12-10
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      • 1970-01-01
      相关资源
      最近更新 更多