Você não forneceu nenhum detalhe sobre o idioma/ambiente, mas vou tentar um palpite de qualquer maneira:
As instruções preparadas do MySQL usam nativamente
? como o espaço reservado do parâmetro, mas o PostgreSQL usa $1 , $2 etc. Tente substituir o ? com $1 e veja se funciona:WHERE address = $1
As mensagens de erro no PostgreSQL são muito enigmáticas.
Em geral, descobri que as mensagens de erro do Postgres são melhores do que produtos concorrentes (ahem, MySQL e especialmente Oracle), mas neste caso você conseguiu confundir o analisador além da sanidade. :)