Snowflake:如何从扁平化的日期字符串变量数组中插入 table?

Snowflake: How to insert into a table from a flattened array of date strings variable?

Snowflake 的全新功能。我需要将数组中的所有日期插入 table 中的日期字段。我正在通过 JavaScript 存储过程来执行此操作。

//get the array of dates
datesMissingArr = priorDatesArr.filter(date=>summDateArr.indexOf(date)==-1);

datesMissingArr now equals this: [ "2019-10-08", "2019-09-08", "2019-10-06" ]

现在我想把这些日期中的每一个都插入到 table 中,像这样:

snowflake.createStatement( { sqlText: `INSERT INTO "MYDB"."PUBLIC"."dates_table"("logdate") 
                             SELECT value::date FROM TABLE(FLATTEN(input => parse_json('${datesMissingArr}')));`                                         
                            } ).execute();

但是我得到一个错误:

Error parsing JSON: garbage in the numeric literal: 2019-10-08,, pos 11 At Statement.execute

一些advice/help赞赏。

谢谢!

您需要在调用 execute() 之前将数组转换为 JSON 字符串:
var datesMissingStr = JSON.stringify(datesMissingArr); 然后使用 ${datesMissingStr}.

但实际上你应该绑定参数:

snowflake.createStatement( { 
    sqlText: `INSERT INTO "dates_table"("logdate") 
              SELECT value::date FROM TABLE(FLATTEN(input => parse_json(:1)))`,
    binds:   [JSON.stringify(datesMissingArr)]
} ).execute();