Oracle
 sql >> Base de données >  >> RDS >> Oracle

Conversion d'un objet en CLOB

Si la longueur du CLOB est suffisamment petite ( <Integer.MAX_VALUE ) vous pouvez faire ce qui suit :

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

(Il suffit de jeter un œil à cette question )

MODIF :

Le code que vous avez soumis dans votre question devrait devenir :

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

Veuillez noter que la boucle dans votre code d'origine était absolument inutile, je l'ai donc supprimée.

Vérifiez également que result[1] est un java.sql.Clob