проблема вставки сгустка оракула весной - PullRequest
0 голосов
/ 06 мая 2010

Я хочу вставить значение 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 ]

0 голосов
/ 06 мая 2010

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

0 голосов
/ 06 мая 2010

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

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

...