2010-05-05 60 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,以確定哪一個導致錯誤。