【问题标题】:Pass values in an array to redshift parameterized query using map function使用 map 函数将数组中的值传递给 redshift 参数化查询
【发布时间】: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",

还有其他可用的方法在数组中插入值吗?

【问题讨论】:

    标签: node.js aws-lambda amazon-redshift


    【解决方案1】:

    可以使用 npm 包pg-format 为参数化查询插入传递多个值。这种格式有助于将参数作为数组传递。 pg-format 提供输出转义 SQL 文字的 %L 模式。

    请参考链接https://www.wlaurance.com/2018/09/node-postgres-insert-multiple-rows

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-16
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多