使用 map 函数将数组中的值传递给 redshift 参数化查询
Posted
技术标签:
【中文标题】使用 map 函数将数组中的值传递给 redshift 参数化查询【英文标题】:Pass values in an array to redshift parameterized query using map function 【发布时间】:2021-09-22 11:52:16 【问题描述】:我正在尝试使用参数化查询在 redshift 数据库中插入一个对象数组。我使用了 map 函数并调用了一个事件来遍历数组中的对象。
try
responseBody = redshiftClient.parameterizedQuery( 'INSERT INTO tablename (id, test1, test2, test3, test4, test5) VALUES ($1,$2,$3,$4,$5,$6)',
[event.map(item => [id, item.test1, item.test2, item.test3,item.test4, test5])]);
catch ( err )
console.log(err);
var response =
"statusCode": 200,
"headers":
,
"body": JSON.stringify(responseBody),
"isBase64Encoded": false
;
console.log('Response'+response);
return response;
map函数没有遍历数组中的每个对象,返回如下错误。
"error Message": "error: bind message supplies 1 parameters, but prepared statement \"\" requires 6",
还有其他可用的方法在数组中插入值吗?
【问题讨论】:
【参考方案1】:可以使用 npm 包pg-format
为参数化查询插入传递多个值。这种格式有助于将参数作为数组传递。 pg-format 提供输出转义 SQL 文字的 %L 模式。
请参考链接https://www.wlaurance.com/2018/09/node-postgres-insert-multiple-rows
【讨论】:
以上是关于使用 map 函数将数组中的值传递给 redshift 参数化查询的主要内容,如果未能解决你的问题,请参考以下文章