No meu aplicativo, insiro dados no banco de dados usando o código C, já que as seqüências que recebo de uma fonte não confiável os escaparam usando a PQescapeByteaConn
biblioteca libpq. O que está funcionando perfeitamente, ou seja, resulta no formato Octet String. Veja o exemplo abaixo,
String de entrada: \n\t\f\b\p\k\j\l\mestPrepared
String de saída: \\012\\011\\014\\010pkjlmestPrepared
String de saída é inserida no banco de dados. Agora, recupero esses dados do banco de dados em um código java usando JDBC. Como posso retirar a string do valor original?
Pensei em duas abordagens possíveis,
- Altere a consulta de recuperação do banco de dados e passe esse campo para qualquer função de manipulação de String do postgres, ou seja, que possa converter bytea em texto.
- Faça a decodificação no código Java.
Eu posso entender que a abordagem 1 será mais eficiente. Eu tentei quase todas as funções listadas aqui, mas nada está funcionando. Por favor ajude!!
Estou usando a versão 8.4 do postgres em uma máquina Linux.
ResultSet.getBytes()
?