2010-05-05 89 views
0

我想将CLOB值插入到我的Oracle数据库中,这里是我可以做的。插入操作时,我得到了这个异常“ORA-01461:只能将长整型值插入长整列”。有人能告诉我该怎么办?谢谢。春季的oracle clob插入问题

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}); 
} 

回答

0

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

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

+0

yes所有getters都返回'String'值,并且在我的数据库中'列C'有一个'CLOB'数据类型,''列'F'有'XMLTYPE'。因此,我猜参数的顺序是正确的。 – haluk 2010-05-05 21:25:14

0

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