使用 Snowflake 中的存储过程从 table 中检索两列
Retrieving two columns from a table using stored procedure in Snowflake
我正在尝试使用该函数从 table 检索数据并将它们存储在一个数组中。但是当我尝试 return 两个数组之一时,我没有得到任何数据。不明白我哪里错了。
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:
return arr1,arr2;
相反,您可以 return 数组的数组:
return [arr1,arr2];
然后你可以在一个变量中接收数组的数组:
arrays = get_columns_data();
测试如何使用逗号 return 不起作用,然后通过 return 数组修复:
我正在尝试使用该函数从 table 检索数据并将它们存储在一个数组中。但是当我尝试 return 两个数组之一时,我没有得到任何数据。不明白我哪里错了。
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:
return arr1,arr2;
相反,您可以 return 数组的数组:
return [arr1,arr2];
然后你可以在一个变量中接收数组的数组:
arrays = get_columns_data();
测试如何使用逗号 return 不起作用,然后通过 return 数组修复: