DBAtlas · Veritabanı operasyon atlası

42P02: undefined_parameter

PostgreSQL

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

DBAtlas'ta aç →

Aynı motorda diğer kayıtlar