You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DynamoDB executeStatement参数化PartiQL查询占位符语法问题

错误原因

参数占位符?不需要用单引号包裹。PartiQL参数绑定机制会自动处理字符串类型参数的转义和引号包裹,手动添加单引号会让解析器将'?'识别为普通字符串常量,无法和Parameters数组中的参数完成匹配。

正确写法

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

补充注意事项

  • 占位符按位置和Parameters数组的元素一一对应,顺序不能错
  • 数值、布尔等其他类型的参数同样不需要给占位符加引号,只需要在Parameters中对应正确的类型标记即可(比如"N"对应数值、"BOOL"对应布尔值)
  • 如果你使用的是V3版本的AWS SDK for JavaScript,不需要手动添加类型标记,直接传入原生JS值即可,SDK会自动完成类型转换:
// AWS SDK v3 示例
executeStatement({
  Statement: `select * from "myTable"."myIndex" where "pk" = ? and "sortKey5" >= ? ORDER BY "sortKey5" DESC`,
  Parameters: [pk, 50]
})

内容的提问来源于stack exchange,提问作者fred_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 18:39:03