Javascript 如何将表的列名存储在Snowflake中的数组中

Javascript 如何将表的列名存储在Snowflake中的数组中,javascript,sql,stored-procedures,snowflake-cloud-data-platform,Javascript,Sql,Stored Procedures,Snowflake Cloud Data Platform,我对雪花很陌生。我只需要检索表的列名,然后将其作为存储过程中的数组返回 例如: Column_A Column_B Column_C Column_D 1 2 2 2 应返回[列A、列B、列C、列D] 以下是我的尝试: create or replace procedure sample() return RETURNTYPE? language javascript AS

我对雪花很陌生。我只需要检索表的列名,然后将其作为存储过程中的数组返回

例如:

   Column_A    Column_B    Column_C    Column_D
      1           2           2           2
应返回[列A、列B、列C、列D]

以下是我的尝试:

create or replace procedure sample()
    return RETURNTYPE?
    language javascript
    AS
    $$
      var cmd = 'SELECT COLUMN_NAME' FROM table1;
      var statement = snowflake.createStatement({sqlTest: cmd});
      var res = statement.execute();
      var arr = [];
      //HOW CAN I PUSH COLUMN NAMES INTO THIS ARRAY
      
      return ARRAY;

    $$;

我是个新手。有人能解释一下如何解决这个问题吗。

检查一下Mike Walton不使用存储过程的解决方案。将此答案留给使用存储过程寻找答案的任何人

一种解决方案是在存储过程中运行SELECT*,然后该语句将具有列的名称:

创建或替换过程get\u columnsTABLE\u NAME VARCHAR 返回数组 语言JAVASCRIPT 像 $$ var stmt=snowflake.createStatement{ sqlText:选择*FROM+表格\名称+限制1;, }; stmt.execute; var cols=[];
对于i=1;我检查Mike Walton的解决方案,它不使用存储过程。将此答案留给使用存储过程寻找答案的任何人

一种解决方案是在存储过程中运行SELECT*,然后该语句将具有列的名称:

创建或替换过程get\u columnsTABLE\u NAME VARCHAR 返回数组 语言JAVASCRIPT 像 $$ var stmt=snowflake.createStatement{ sqlText:选择*FROM+表格\名称+限制1;, }; stmt.execute; var cols=[]; 对于i=1;我将简单地利用信息模式和数组agg函数来完成这项工作,而不是使用存储过程。在Snowflake中,如果没有所有javascript作为本机函数,类似的功能也可以工作:

SELECT array_agg(column_name)
FROM information_schema.columns
where table_name = 'TABLE_NAME';
我只需要利用information\u schema和array\u agg函数来完成这项工作,而不是使用存储过程。在Snowflake中,如果没有所有javascript作为本机函数,类似的功能也可以工作:

SELECT array_agg(column_name)
FROM information_schema.columns
where table_name = 'TABLE_NAME';

我猜@R0bert想要一个存储过程我猜@R0bert想要一个存储过程