Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Objekt in CLOB konvertieren

Wenn die Länge des CLOB klein genug ist ( <Integer.MAX_VALUE ) können Sie Folgendes tun:

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

(Schauen Sie sich einfach diese Frage )

BEARBEITEN :

Der Code, den Sie in Ihrer Frage übermittelt haben, sollte folgendermaßen aussehen:

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

Bitte beachten Sie, dass die Schleife in Ihrem ursprünglichen Code absolut nutzlos war, also habe ich sie entfernt.

Überprüfen Sie auch das result[1] ist ein java.sql.Clob