Oracle
 sql >> Database >  >> RDS >> Oracle

Conversione oggetto in CLOB

Se la lunghezza del CLOB è sufficientemente piccola ( <Integer.MAX_VALUE ) puoi fare quanto segue :

clob.getSubString(1, (int) clob.length());

(Basta dare un'occhiata a questa domanda )

MODIFICA :

Il codice che hai inviato nella tua domanda dovrebbe diventare:

String sql = "select id, data from mytable";
List< Object[] > results = getEntityManager().createNativeQuery(sql).getResultList();
Map< Long, String > map = new HashMap<>();
Clob clob = (Clob)result[1];
String value = clob.getSubString(1, (int) clob.length());
map.put(((Number) result[0]).longValue(), value);

Tieni presente che il ciclo nel tuo codice originale era assolutamente inutile, quindi l'ho rimosso.

Verifica anche che result[1] è un java.sql.Clob