Gravar array no postgre

2 respostas
erico_kl

Olá pessoal!
To pesquisando aqui uma forma de como gravar um simples array de longs (bigint[] no postgre) mas não achei nada…

Estou utilizando JDBC puro com PreparedStatement, para recuperar o array como List fiz da seguinte forma:

Array array = rs.getArray(4);
if (array != null)
  List<Long> list = Arrays.asList((Long[])rs.getArray(4).getArray());

Só preciso fazer o processo inverso agora (ao invés de buscar, setar um array… em outras palavras, converter de List pra java.sql.Array), algo como:

Alguém teria uma solução pra isso?
Obrigado a todos…

2 Respostas

erico_kl

Essa é a desvantagem de usar o preparedStatement… tenho a sql pronta, rodando certinho, porém não tenho como fazer ela ter a mesma sintaxe que eu quero executando pelo ppst…
a sql é essa:

porém como faço de maneira simples pra largar o “ARRAY[2,3,9]” pelo ppst?

Obs.: passar como string, converter explicitamente, passar como object e especificar o tipo, tudo já foi tentado…

não quero ter q fazer gambiarras somente pra poder passar uma sql do jeito que ela está para o ppst… (eu sei que posso passá-la como String mas assim vou fugir dos padrões de todas as outras sqls que tenho no sistema)

erico_kl

é… acho que o jeito é tratar como String:

e fazer um cast na sql pra bigint[]… nao achei outra forma…

Criado 17 de janeiro de 2011
Ultima resposta 17 de jan. de 2011
Respostas 2
Participantes 1