DBAtlas · 数据库运维图谱

42P18: indeterminate_datatype

PostgreSQL

含义

PostgreSQL 无法根据上下文推断表达式或参数的数据类型。最常见于使用了无类型的占位符(如 $1)或周围没有任何类型提示的裸 NULL。

原因

预处理语句中的无类型参数;两边都无法确定类型的比较,例如 "WHERE $1 = $2";或在无上下文的情况下使用 NULL/数组字面量。规划器无法决定使用哪种类型。

解决方法

为无法确定类型的表达式添加显式类型转换:$1::text、$1::integer、NULL::date 等。例如:SELECT $1::int + 1; 为驱动/ORM 参数指定类型。在列比较中,确保至少一边的类型已知。

在 DBAtlas 中打开 →

同一数据库的其他条目