DBAtlas · Atlas für Datenbankbetrieb

42P02: undefined_parameter

PostgreSQL

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank