sqlBuffer.append(keyValue);
//注意这里的”for update”
sqlBuffer.append("'''' for update ");
stmt = conn.createStatement();
rs = (OracleResultSet) stmt.executeQuery(sqlBuffer.toString());
if (!rs.next())
{
rs.close();
stmt.close();
throw new IllegalArgumentException(
"no record found for keyValue: ''''" + keyValue + "''''");
}
blob = rs.getBLOB(1);
OutputStream outstream = blob.getBinaryOutputStream();
int bufferSize = blob.getChunkSize();
byte[] buffer = new byte[bufferSize];
int bytesRead = -1;
while ((bytesRead = instream.read(buffer)) != -1)
{
outstream.write(buffer, 0, bytesRead);
}
instream.close();
outstream.close();
rs.close();
stmt.close();
}
catch (SQLException e)
{
throw e;
}
catch (IOException e)
{
throw e;
}
finally {
conn.setAutoCommit(oldAutoCommit);
}
}
二、PL/SQL下
(例子表结构如一所示)
i.插入一空的Blob。
…
declare
bufferBlob BLOB;
data RAW(…)
…
INSERT INTO Student VALUES(‘zhangsan’, 20 , empty_blob() );
…
ii.更新该纪录的Blob。
…
SELECT Picture INTO bufferBlob FROM Student WHERE Name=’zhangsan’ FOR UPDATE;
DBMS_LOB.OPEN(bufferBlob , dbms_lob.lob_readwrite);
dbms_lob.write(bufferBlob , utl_raw.length(data) , data);
…
(待续)
上一页 [1] [2] [ORACLE]如何通过struts以oci协议将文件上传到oracle数据库… [ORACLE]如何在oracle里面操作BLOB [ORACLE]操作Oracle数据库实现上传图片到Blob类型的字段出… [ORACLE]下载Oracle数据库中的Blob二进制文件,实例! [ORACLE]oracle+jsp中blob类型存储大文本问题解决方法 [ORACLE]在Oracle中存取BLOB对象实现文件的上传和下载 [ORACLE]在Java中使用Oracle blob [ORACLE]c# ,在Oracle 中,对 blob 类型对象的操作 [ORACLE]关于Oracle9i中BLOB类型的操作 [ORACLE]servlet实现从oracle数据库的blob字段中读出文件并…
|