[code=Java][Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try{
con = ConnectionFactory.getConnection();
con.setAutoCommit(false);
String sql = "insert into images(id,name,image) values(?,?,empty_blob())";
ps = con.prepareStatement(sql);
ps.setLong(1, id);
ps.setString(2, imagename);
ps.executeUpdate();
ps.close();

sql = "select image from images where id=? for update";
ps = con.prepareStatement(sql);
ps.setLong(1, id);
rs = ps.executeQuery();
while(rs.next()){
Blob image = (Blob)rs.getBlob("image");//找到要写入的位置
OutputStream out = image.setBinaryStream(0);   //得到输入流,并指定开始读入的位置
BufferedOutputStream bos = new BufferedOutputStream(out);
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
int c ;
while((c=bis.read())!=-1){
bos.write(c);
}
bis.close();
bos.close();
}
con.commit();/code]
我的这段代码有什么问题,怎么画线的地方老是报Exception in thread "main" java.lang.AbstractMethodError: oracle.sql.BLOB.setBinaryStream(J)Ljava/io/OutputStream;异常