Nella mia applicazione inserisco i dati nel database usando il codice C, poiché le stringhe che ricevo da una fonte non attendibile le ho salvate usando la PQescapeByteaConn
libreria libpq. Che funziona perfettamente bene, vale a dire risultati in formato Ottetto String. Vedi l'esempio seguente,
Stringa di input: \n\t\f\b\p\k\j\l\mestPrepared
Stringa di uscita: \\012\\011\\014\\010pkjlmestPrepared
La stringa di output viene inserita nel database. Ora recupero quei dati dal database in un codice Java usando JDBC. Come posso ripristinare il valore originale della stringa?
Ho pensato a due possibili approcci,
- Modificare la query di recupero del database e passare questo campo a qualsiasi funzione di manipolazione di stringhe di postgres, ovvero che può convertire bytea in testo.
- Esegui la decodifica nel codice Java.
Posso capire che l'approccio 1 sarà più efficiente. Ho provato quasi tutte le funzioni elencate qui, ma non funziona nulla. Per favore aiuto!!
Sto usando la versione 8.4 di Postgres su una macchina Linux.
ResultSet.getBytes()
?