【问题标题】:DynamoDB parameterized PartiQL query with executeStatement带有 executeStatement 的 DynamoDB 参数化 PartiQL 查询
【发布时间】:2021-10-29 13:21:03
【问题描述】:

我对 nodejs 中的 aws sdk 有以下查询,并在 aws lamdba 中运行,但在使用参数数组时不起作用:

executeStatement({ 
  Statement: `select * from "myTable"."myIndex" where "pk" = '?' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
  Parameters: [{"S": pk}] })

与参数直接内联的相同查询可以工作

executeStatement({ 
 Statement: `select * from "myTable"."myIndex" where "pk" = 'xxx' and "sortKey5" >= 50 ORDER BY "sortKey5" DESC` })

这可能是 '?' 的语法这是错误的,但我找不到任何其他语法的示例。

有谁知道如何编写语句以便它使用参数?

【问题讨论】:

    标签: node.js aws-lambda amazon-dynamodb aws-sdk partiql


    【解决方案1】:

    看来,至少在 SELECT 语句中,需要省略 ? 周围的单引号,例如foobar = ? 而不是 foobar = '?'

    所以你的查询是:

    executeStatement({ 
      Statement: `select * from "myTable"."myIndex" where "pk" = ? and "sortKey5" >= 50 ORDER BY "sortKey5" DESC`,
      Parameters: [{"S": pk}]
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多