sql >> Base de Datos >  >> RDS >> Oracle

Convertir objeto a CLOB

Si la longitud del CLOB es lo suficientemente pequeña ( <Integer.MAX_VALUE ) puedes hacer lo siguiente:

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

(Solo eche un vistazo a esta pregunta )

EDITAR:

El código que envió en su pregunta debe convertirse en:

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);

Tenga en cuenta que el bucle en su código original era absolutamente inútil, así que lo eliminé.

Compruebe también que result[1] es un java.sql.Clob