0

我想将 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});
}
4

2 回答 2

0

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

于 2010-05-05T22:38:32.520 回答
0

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

另外,我假设所有getA()返回getF()字符串值?

于 2010-05-05T21:19:34.693 回答