String sqlstrblob="";
sqlstrblob = "insert into document_opinion_blob(docId,CommentId,HandleName,CONTENTBLOB,Sign,SignDate)";
sqlstrblob += "values('" + docId + "',";
sqlstrblob += "'" + CommentId + "',";
sqlstrblob += "'" + CurrentHandleName + "',";
sqlstrblob += "empty_blob(),";
sqlstrblob += "'" + Sign + "',";
sqlstrblob += "to_date('" + request.getParameter("SignDate") + "','yyyy-mm-dd')";
sqlstrblob += ")";
pq.executeUpdate(sqlstrblob);
String sqltemp="select CONTENTBLOB from document_opinion_blob where docId='"+docId+"' and CommentId='"+CommentId+"' and HandleName='"+CurrentHandleName+"' for update";
byte[] data = comments.getBytes();
ResultSet rs =pq.executeQuery(sqltemp);
if (rs.next())
{
//得到java.sql.Blob对象后强制转换为oracle.sql.BLOB
oracle.sql.BLOB blob = (oracle.sql.BLOB)rs.getBlob(1);
//得到java.sql.Blob对象后强制转换为weblogic.jdbc.vendor.oracle.OracleThinBlob(不同的App Server对应的可能会不同)
//weblogic.jdbc.vendor.oracle.OracleThinBlob blob = (weblogic.jdbc.vendor.oracle.OracleThinBlob) rs.getBlob("CONTENTBLOB");
OutputStream outStream = blob.getBinaryOutputStream();
//data是传入的byte数组,定义:byte[] data
int size=blob.getBufferSize();
byte[] datatemp=new byte[size];
InputStream is = new ByteArrayInputStream(data);
int len=0;
while((len=is.read(datatemp))!=-1)
{
outStream.write(datatemp, 0, len);
outStream.flush();
}
outStream.close();
}
pq.commitTransaction();
//pq.rollbackTransaction();
pq.disconnectDB();