DBAtlas · 数据库运维图谱

42P02: undefined_parameter

PostgreSQL

含义

查询引用了不存在的参数。PostgreSQL 报告所引用的位置参数(例如 $2)未定义。属于 Class 42(syntax_error_or_access_rule_violation)。

原因

引用的参数多于用 PREPARE 预处理的语句所提供的参数(例如发送两个参数却使用 $3);参数编号有跳号;或动态拼接的 SQL 中 $N 索引错误。

解决方法

确保参数编号与所提供值的数量一致;确认从 $1 开始且连续无间断。在 PREPARE 语句中完整定义参数类型:PREPARE p(int, text) AS SELECT ... WHERE a=$1 AND b=$2; 如果使用 ORM/驱动,比较绑定参数的数量与查询中的占位符数量。

在 DBAtlas 中打开 →

同一数据库的其他条目