Hola, me ha surgido cambiar en la base de datos un campo que hasta ahora era varchar2 por un CLOB.
Para obtener el CLOB y convertirlo a String para procesarlo en mi aplicación no tengo problemas usando el import de java.sql.Clob; (Interfaz)
Sin embargo, si quiero procesar un String, convertirlo a CLOB y hacer un setClob (para un insert o update), la única forma que he encontrado de hacerlo es ésta
// Código
CLOB v_clob = CLOB.createTemporary(conn,false,CLOB.DURATION_CALL );
CallableStament cs = conn.prepareCall("begin ClobPackage.insertClob(?); end;");
int x = v_clob.putString(1,p_clob_string);
cs.setClob(1,v_clob);
El problema que veo es que esto me obliga a importar la clase oracle.sql.CLOB; y además a incorporar la conexión al método que tenía para realizar los set del statement.
Me gustaría saber si hay alguna manera de parchear esto y conseguir hacer el set usando tan sólo la interfaz de java.sql.Clob.
Nota: probé a hacer el set del String utilizando directamente la interfaz sin instanciar, pero no he podido. ¿Necesita entonces a la fuerza que le proporcione un oracle.sql.CLOB?.