Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在snowflake中调用另一个过程中的过程_Javascript_Sql_Stored Procedures_Snowflake Cloud Data Platform - Fatal编程技术网

Javascript 如何在snowflake中调用另一个过程中的过程

Javascript 如何在snowflake中调用另一个过程中的过程,javascript,sql,stored-procedures,snowflake-cloud-data-platform,Javascript,Sql,Stored Procedures,Snowflake Cloud Data Platform,下面是我的存储过程,它检索表的所有列名。我想在另一个过程中调用这个过程 CREATE OR REPLACE PROCEDURE get_columns(TABLE_NAME VARCHAR) RETURNS ARRAY LANGUAGE JAVASCRIPT AS $$ var stmt = snowflake.createStatement({ sqlText: "SELECT * FROM " + TABLE_NAME + " LIMIT 1;"

下面是我的存储过程,它检索表的所有列名。我想在另一个过程中调用这个过程

CREATE OR REPLACE PROCEDURE get_columns(TABLE_NAME VARCHAR)
RETURNS ARRAY
LANGUAGE JAVASCRIPT
AS
$$
var stmt = snowflake.createStatement({
    sqlText: "SELECT * FROM " + TABLE_NAME + " LIMIT 1;",    
});
stmt.execute();

var cols=[];
for (i = 1; i <= stmt.getColumnCount(); i++) {
  cols.push(stmt.getColumnName(i));
}
return cols
$$;
我没有看到任何“大”错误。。。也许在调用get_columns('Table_Name')后添加分号会有所帮助?(对我来说,这里没有分号也可以用,所以我认为这不是问题所在)

最重要的是,$$后面没有分号(可能是脚本中稍后的一些代码导致了错误)

更多信息可在此处找到

最后一个提示可能是您的表的访问权限。

我没有看到任何“大”错误。。。也许在调用get_columns('Table_Name')后添加分号会有所帮助?(对我来说,这里没有分号也可以用,所以我认为这不是问题所在)

最重要的是,$$后面没有分号(可能是脚本中稍后的一些代码导致了错误)

更多信息可在此处找到


最后一个提示可能是对表的访问权限。

您遇到的问题是没有迭代resultset arr。您可以在代码中执行以下操作:

CREATE OR REPLACE PROCEDURE get_data()   //procedure call the above procedure
  RETURNS ARRAY
  LANGUAGE JAVASCRIPT
  AS
  $$
  var arr = [];
  var r = snowflake.createStatement({sqlText: "call get_columns('TABLE_NAME')"});
  arr = r.execute();
  arr.next();
  return arr.getColumnValue(1);
  $$;
    
call get_data();

您遇到的问题是没有迭代resultset arr。您可以在代码中执行以下操作:

CREATE OR REPLACE PROCEDURE get_data()   //procedure call the above procedure
  RETURNS ARRAY
  LANGUAGE JAVASCRIPT
  AS
  $$
  var arr = [];
  var r = snowflake.createStatement({sqlText: "call get_columns('TABLE_NAME')"});
  arr = r.execute();
  arr.next();
  return arr.getColumnValue(1);
  $$;
    
call get_data();

您的错误信息/输出是什么?那么到底出了什么问题?@Marcel我得到的是“返回值不是数组”@Marcel这是返回一个[object object]奇怪的是,为什么要使用SP来返回数组,而不是使用UDTF和返回表。也许对你更有用…@Marcel,没关系,我知道了。谢谢。你的错误信息/输出是什么?那么到底出了什么问题?@Marcel我得到的是“返回值不是数组”@Marcel这是返回一个[object object]奇怪的是,为什么要使用SP来返回数组,而不是使用UDTF和返回表。也许对你更有用…@Marcel,没关系,我知道了。谢谢