42P02: undefined_parameter
PostgreSQLWas bedeutet das?
Die Abfrage referenziert einen Parameter, der nicht existiert. PostgreSQL meldet, dass der referenzierte Positionsparameter (z. B. $2) nicht definiert ist. Gehört zu Klasse 42 (syntax_error_or_access_rule_violation).
Ursache
In einer mit PREPARE vorbereiteten Anweisung werden mehr Parameter referenziert als übergeben (z. B. zwei Parameter senden und $3 verwenden); übersprungene Parameternummern; oder falsche $N-Indizes in dynamisch zusammengesetztem SQL.
Lösung
Stelle sicher, dass die Parameternummern zur Anzahl der übergebenen Werte passen; prüfe, dass sie bei $1 beginnen und lückenlos fortlaufen. Definiere die Parametertypen in der PREPARE-Anweisung vollständig: PREPARE p(int, text) AS SELECT ... WHERE a=$1 AND b=$2; Wenn du ein ORM/einen Treiber nutzt, vergleiche die Anzahl gebundener Parameter mit den Platzhaltern in der Abfrage.