在jsp中如何往blob字段插入文件?在线等待
我用以下程序来对blob字段test_picture插入图片
<% File file = new File("C:\\temp\\xiamenbridge.jpg");
String fileName = file.getName();
out.println(fileName);
FileInputStream inStream = new FileInputStream(file);
byte[] buffer = new byte[inStream.available()];
String sqlStr = "INSERT INTO TEST VALUES(5,'"+fileName+"', empty_blob())";
ResultSet rs1 = SqlBean.executeQuery(conn,sqlStr);
ResultSet rs = SqlBean.executeQuery(conn,"select test_picture from TEST where test_id=5");
if(rs.next())
{
BLOB blob = ((OracleResultSet)rs).getBLOB("test_picture");
OutputStream outStream = blob.getBinaryOutputStream();
inStream.read(buffer);
outStream.write(buffer);
outStream.flush();
inStream.close();
rs.close();
out.println("插入成功");
}
%>
但结果是把test_id和test_contents值插入了,却没能把图片ximanbridge.jpg插入成功,且错误提示为:
Internal Servlet Error:
java.io.IOException: ORA-22920: 未锁定含有 LOB 值的行
ORA-06512: 在"SYS.DBMS_LOB", line 700
ORA-06512: 在line 1
at oracle.jdbc.dbaccess.DBError.SQLToIOException(DBError.java:531)
at oracle.jdbc.driver.OracleBlobOutputStream.flushBuffer(OracleBlobOutputStream.java:179)
at oracle.jdbc.driver.OracleBlobOutputStream.write(OracleBlobOutputStream.java:125)
at java.io.OutputStream.write(OutputStream.java:61)
....
请问是什么问题,如何解决?