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. :)