42P18: indeterminate_datatype
PostgreSQLWas bedeutet das?
PostgreSQL konnte den Datentyp eines Ausdrucks oder Parameters nicht aus dem Kontext ableiten. Am häufigsten, wenn ein untypisierter Platzhalter (etwa $1) oder ein nacktes NULL ohne umgebenden Typhinweis verwendet wird.
Ursache
Untypisierte Parameter in Prepared Statements; Vergleiche, bei denen beide Seiten unbestimmt sind, etwa „WHERE $1 = $2“; oder kontextfreie Verwendung von NULL-/Array-Literalen. Der Planner kann nicht entscheiden, welchen Typ er verwenden soll.
Lösung
Füge dem unbestimmten Ausdruck einen expliziten Cast hinzu: $1::text, $1::integer, NULL::date usw. Zum Beispiel: SELECT $1::int + 1; Gib Typen für Treiber-/ORM-Parameter an. Stelle bei Spaltenvergleichen sicher, dass mindestens eine Seite einen bekannten Typ hat.