Estoy tratando de leer un clob de DB postgreSQL, cambiarlo y volver a escribirlo.Cadena a CLOB con postgreSQL
que era capaz de leer el CLOB con éxito utilizando el siguiente código:
PreparedStatement statement = connection.prepareStatement("SELECT clob_column from data where id = 1");
ResultSet executeQuery = statement.executeQuery();
executeQuery.next()
Clob fetchedClob = executeQuery.getClob("clob_column");
Pero cuando estoy tratando de crear un nuevo CLOB con los nuevos datos usando:
Clob newClob = connection.createClob();
I' m consiguiendo el error siguiente:
java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyConnection.createClob()Ljava/sql/Clob;
Por otra parte, si intento acaba de editar el CLOB exagerado, usando:
fetchedClob.setString(0, "new string");
Estoy recibiendo el siguiente error:
Method org.postgresql.jdbc4.Jdbc4Clob.setString(long,str) is not yet implemented.
Alguna idea?
Actualización: aquí es la definición de la tabla
CREATE TABLE data ( id bigint NOT NULL, clob_column text,);
Gracias
estoy usando texto. Cuando traté de usar getString obtengo un número que no entiendo su significado (¿quizás la longitud real de los datos?). Solo cuando obtengoClob y miro su flujo de caracteres (getCharacterStream) obtengo el XML completo que se guarda en el DB. –
@BenBracha: Entonces no nos estás mostrando todo. 'getString()' definitivamente funciona bien con 'text'columns. Por favor, muéstrenos la definición de su tabla (edite su pregunta). –
Actualizado anteriormente. Ahora también veo que org.postgresql.jdbc3.AbstractJdbc3Clob que usa mi aplicación no implementa todo el conjunto * para Clob. ¿Qué debo hacer? También debo agregar que usamos Hibernate, y la entidad correspondiente para esta tabla tiene el campo column_text marcado con @Lob –