42P02: undefined_parameter
PostgreSQLNe demek?
Sorguda var olmayan bir parametreye başvuruldu. PostgreSQL, referans verilen konumsal parametrenin (ör. $2) tanımlı olmadığını bildiriyor. Class 42 (syntax_error_or_access_rule_violation) sınıfındadır.
Neden olur?
PREPARE ile hazırlanmış bir ifadede sağlanandan fazla parametreye atıfta bulunmak (ör. iki parametre gönderip $3 kullanmak); parametre numaralandırmasının atlanması; ya da dinamik olarak birleştirilen SQL'de yanlış $N indeksleri kullanılması.
Nasıl çözülür?
Parametre numaralarının sağladığınız değer sayısıyla eşleştiğinden emin olun; $1'den başlayıp boşluksuz devam ettiğini doğrulayın. PREPARE ifadesinde parametre tiplerini eksiksiz tanımlayın: PREPARE p(int, text) AS SELECT ... WHERE a=$1 AND b=$2; ORM/sürücü kullanıyorsanız bağlanan parametre sayısını sorgudaki yer tutucularla karşılaştırın.