En mi aplicación inserto datos en la base de datos usando el código C, ya que las cadenas que recibo de una fuente no confiable los escapé usando la PQescapeByteaConn
biblioteca libpq. Que funciona perfectamente bien, es decir, da como resultado la cadena de formato Octet. Ver ejemplo a continuación,
Cadena de entrada: \n\t\f\b\p\k\j\l\mestPrepared
Cadena de salida: \\012\\011\\014\\010pkjlmestPrepared
La cadena de salida se inserta en la base de datos. Ahora recupero esos datos de la base de datos en un código Java usando JDBC. ¿Cómo puedo recuperar la cadena a su valor original?
Pensé en dos posibles enfoques,
- Cambie la consulta de recuperación de la base de datos y pase este campo a cualquier función de manipulación de cadenas de postgres, es decir, que pueda convertir bytea en texto.
- Hacer la decodificación en código Java.
Puedo entender que el enfoque 1 será más eficiente. He probado casi todas las funciones enumeradas aquí, pero nada funciona. ¡¡Por favor ayuda!!
Estoy usando la versión 8.4 de postgres en una máquina Linux.
ResultSet.getBytes()
?