Nie podałeś żadnych szczegółów dotyczących języka/środowiska, ale i tak spróbuję zgadywać:
Przygotowane instrukcje MySQL natywnie używają ? jako symbol zastępczy parametru, ale PostgreSQL używa $1 , $2 itp. Spróbuj zastąpić ? z $1 i zobacz, czy to działa:
WHERE address = $1
Komunikaty o błędach w PostgreSQL są bardzo tajemnicze.
Ogólnie zauważyłem, że komunikaty o błędach Postgresa są lepsze niż konkurencyjne produkty (ahem, MySQL i zwłaszcza Oracle), ale w tym przypadku udało Ci się pomylić parser poza zdrowy rozsądek. :)