Non hai fornito alcun dettaglio sulla lingua/ambiente, ma proverò comunque a indovinare:
Le istruzioni preparate da MySQL utilizzano nativamente ? come segnaposto del parametro, ma PostgreSQL usa $1 , $2 ecc. Prova a sostituire il ? con $1 e vedi se funziona:
WHERE address = $1
I messaggi di errore in PostgreSQL sono molto criptici.
In generale, ho scoperto che i messaggi di errore di Postgres sono migliori dei prodotti concorrenti (ehm, MySQL e soprattutto Oracle), ma in questo caso sei riuscito a confondere il parser oltre la sanità mentale. :)