高分求关于oracle的blob字段操作的长度限制问题??
我们要插入/修改一个有blog类型的表,使用了如下的代码:
byte[] value =...
PreparedStatement stmt=...
if (value == null) {
stmt.setNull( parameterIndex, Types.BLOB );
}
else {
stmt.setBinaryStream( parameterIndex, new ByteArrayInputStream(value), value.length );
}
如果value的长度小于4000,工作正常,但是value的长度超过4000的时候,就会报如下的错误:
java.sql.SQLException: ORA-01460: 转换请求无法实现或不合理
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1891)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:109
3)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.ja