Проблема вставки сгустка оракула весной

Я хочу вставить значение CLOB в свою базу данных Oracle, и вот что я мог сделать. Я получил это исключение при вставке операции "ORA-01461: можно связать значение LONG только для вставки в столбец LONG". Может ли кто-нибудь сказать мне, что мне делать? Благодарю.

List<Object> listObjects = dao.selectAll("TABLE NAME", new XRowMapper());
String queryX = "INSERT INTO X (A,B,C,D,E,F) VALUES (?,?,?,?,?,XMLTYPE(?))";
OracleLobHandler lobHandler = new OracleLobHandler();
for(Object myObject : listObjects) {
   dao.create(queryX, new Object[]{
     ((X)myObject).getA(),
     ((X)myObject).getB(),
     new SqlLobValue (((X)myObject).getC(), lobHandler),
     ((X)myObject).getD(),
     ((X)myObject).getE(),
     ((X)myObject).getF()
     },
     new int[] {Types.VARCHAR,Types.VARCHAR,Types.CLOB,Types.VARCHAR,Types.VARCHAR,Types.VARCHAR});
}

2 ответа

Первое, что я хотел бы сделать, это удалить столбец C или F из вставки, чтобы определить, какая из них вызывает ошибку.

Ваши параметры в правильном порядке? Это похоже на то, что оператор SQL имеет LOB в качестве 6-го параметра, но вы устанавливаете LOB в качестве 3-го параметра.

Кроме того, я предполагаю getA() в getF() все возвращаемые строковые значения?

Другие вопросы по тегам