procurando uma maneira de enviar consultas parametrizadas por meio de dblink
( PostgreSQL
) usando JDBC
( PreparedStatement
).
Este é um exemplo de consulta que desejo usar:
select * from dblink('host=localhost user=*** password=***', $$
select 'abc'
$$) as tmp (n text)
select * from dblink(?, $$
select ?
$$) as tmp (n text)
Porém, JDBC
oferece uma opção para passar apenas o primeiro parâmetro (connstr). O segundo está incluído em uma string literal e, portanto, não é processado. No momento estou resolvendo o problema usando concatenação, mas não gosto dessa abordagem e por isso estou procurando uma alternativa
Você pode usar a função de "formato" do PostgreSQL para injetar o parâmetro no lado do servidor, com escape e aspas adequados:
O JDBC provavelmente fornece funções auxiliares que também devem permitir que você faça esse lado do cliente com mais segurança do que apenas a concatenação ingênua, mas não investiguei isso.