Как вставить столбец CLOB с использованием DBUtils в oracle10g

#java #jdbc #oracle10g #clob

#java #jdbc #oracle10g #clob

Вопрос:

Я могу вставить clob с помощью:

 Reader clobReader = new StringReader(fileString);
stmt.setCharacterStream(1, clobReader, clob.length());
int num = stmt.executeUpdate();
 

Я хочу использовать DBUtils для его завершения.

 run.update(conn, "insert into fileservice(id,filedata)values('1234','ddd',?)",new Object[]{fileString});
 

fileString — это большая строка.

Я сталкиваюсь с ограничениями 32k для clob: setString может обрабатывать только строки, содержащие менее 32766 символов.

Как обрабатывать объект CLOB с помощью DBUtils?

Ответ №1:

чтобы избежать ограничения в 32 КБ, попробуйте добавить это:

 connectionProperties = new Properties();
connectionProperties.put("SetBigStringTryClob", "true");
connection = DriverManager.getConnection(JDBCUrl, connectionProperties);
 

в случае, если вы работаете с Oracle, вы можете преобразовать PreparedStatement в oracle.jdbc.OraclePreparedStatement, который дает вам больше возможностей для работы