42P02: undefined_parameter
PostgreSQL意味
クエリが存在しないパラメータを参照している。参照された位置パラメータ (例: $2) が定義されていないことを PostgreSQL が報告する。Class 42 (syntax_error_or_access_rule_violation) に属する。
原因
PREPARE で準備した文で、与えた数より多くのパラメータを参照している (例: パラメータを 2 つ送って $3 を使用)、パラメータ番号の飛び、または動的に連結した SQL での誤った $N インデックス。
対処方法
パラメータ番号が与える値の数と一致していること、$1 から始まり欠番なく続くことを確認する。PREPARE 文でパラメータ型を完全に定義する: PREPARE p(int, text) AS SELECT ... WHERE a=$1 AND b=$2; ORM/ドライバを使用している場合は、バインドされたパラメータ数とクエリ内のプレースホルダ数を比較する。