春天的oracle clob插入问题

时间:2010-05-05 21:15:15

标签: java oracle spring clob ora-01461

我想将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 :(得分:0)

您的参数是否按正确顺序排列?这就像SQL语句将LOB作为第6个参数,但是您将LOB设置为第3个参数。

另外,我假设getA()getF()都返回String值?

答案 1 :(得分:0)

我要做的第一件事是从插入中删除C列或F列,以确定哪一列导致错误。