错误`绑定消息提供1个参数,但准备好的语句“”需要0`

问题描述 投票:0回答:1

我已将查询准备为

await db.runSql(   
  `PREPARE fetchDashboards (text, text, text) AS SELECT \* FROM dashboards WHERE tenant_id = $1 AND user_id = $2 AND name = $3`,
 );

当我尝试执行它时

const dashboardResult = await db.runSql(  
  'EXECUTE fetchDashboards($1, $2, $3)',  
  [filter.tenant_id, filter.user_id, filter.dashboard_name], 
);

我收到以下错误

迁移过程中出现错误:错误:绑定消息提供 1 个参数,但准备好的语句“”需要 0 个参数 在 Parser.parseErrorMessage (/Users/saaifali/JourneyWithSensys/web/node_modules/.pnpm/[电子邮件受保护]/node_modules/pg-protocol/dist/parser.js:283:98) 在 Parser.handlePacket (/Users/saaifali/JourneyWithSensys/web/node_modules/.pnpm/[电子邮件受保护]/node_modules/pg-protocol/dist/parser.js:122:29) 在 Parser.parse (/Users/saaifali/JourneyWithSensys/web/node_modules/.pnpm/[电子邮件受保护]/node_modules/pg-protocol/dist/parser.js:35:38) 在套接字。(/Users/saaifali/JourneyWithSensys/web/node_modules/.pnpm/[电子邮件受保护]/node_modules/pg-protocol/dist/index.js:11:42) 在 Socket.emit (节点:事件:519:28) 在 addChunk (节点:内部/流/可读:559:12) 在 ReadAddChunkPushByteMode (节点:内部/流/可读:510:3) 在 Readable.push (节点:内部/流/可读:390:5) 在 TCP.onStreamRead (节点:内部/stream_base_commons:191:23) { 长度:137, 严重性:“错误”, 代码:'08P01', 详细信息:未定义, 提示:未定义, 位置:未定义, 内部位置:未定义, 内部查询:未定义, 其中:未定义, 模式:未定义, 表:未定义, 列:未定义, 数据类型:未定义, 约束:未定义, 文件:'postgres.c', 行:'1724', 例程:'exec_bind_message' }

我做错了什么?任何帮助将不胜感激

sql postgresql migration prepared-statement
1个回答
0
投票

唯一可以与参数一起使用的语句是

SELECT
INSERT
UPDATE
DELETE
MERGE
VALUES
EXECUTE
不在该列表中,因此出现错误。
EXECUTE
语句必须包含文字参数值。

© www.soinside.com 2019 - 2024. All rights reserved.