【问题标题】:Retrieving two columns from a table using stored procedure in Snowflake使用 Snowflake 中的存储过程从表中检索两列
【发布时间】:2021-02-06 02:26:27
【问题描述】:

我正在尝试使用该函数从表中检索数据并将它们存储在一个数组中。但是当我试图返回两个数组之一时,我没有得到任何数据。不明白我哪里出错了。

CREATE OR REPLACE PROCEDURE GET_DATE()
        RETURNS VARCHAR NOT NULL
        LANGUAGE JAVASCRIPT
        AS
        $$
            var array1 = [];
            var array2 = [];
            array1,array2 = get_columns_data(); // want to get those two array values from the function for further use
            return array1; //This is not printing or returning anything

            function get_columns_data()
            {
                var arr1 = [];
                var arr2 = [];
                
                cmdl = {sqlText: `SELECT COUNT(*) AS TOTAL, COUNT(DISTINCT(ID)) AS UNIQUE FROM TABLE1;`} //query to get two column values
                stmt = snowflake.createStatement(cmdl);
                
                var a = stmt.execute();
                while(a.next())
                {
                    var one = a.getColumnValue('TOTAL');
                    arr1.push(one);
                    var two = a.getColumnValue('UNIQUE');
                    arr2.push(two);
                }
                return arr1,arr2;  //returning two arrays; Don't know if this is the correct method to return two arryas
            }
        $$

【问题讨论】:

    标签: javascript sql stored-procedures snowflake-cloud-data-platform snowflake-schema


    【解决方案1】:

    此行不适用于 JavaScript:

    return arr1,arr2;
    

    相反,您可以返回一个数组数组:

    return [arr1,arr2];
    

    然后你可以在单个var中接收数组数组:

    arrays = get_columns_data();
    

    测试如何用逗号返回不起作用,然后通过返回数组来修复:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-14
      • 2022-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多