Проблема вставки сгустка оракула весной
Я хочу вставить значение 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()
все возвращаемые строковые значения?