在Oracle中
假定有一张表
lob_table(blob_col Blob, clob_col clob)
假定你创建了Statement Object, stmt// Select LOB locator into standard result set.
ResultSet rs =
stmt.executeQuery ("SELECT blob_col, clob_col FROM lob_table");
while (rs.next())
{
// Get LOB locators into Java wrapper classes.
java.sql.Blob blob = (java.sql.Blob)rs.getObject(1);
java.sql.Clob clob = (java.sql.Clob)rs.getObject(2);
(...process...)
}输出强制转换为java.sql.Blob 和 java.sql.Clob,
你接下来可以强制转换成oracle.sql.BLOB 和 CLOB,以便利用 oracle.sql.* 中class的扩展功能,你可以这样转换 // Get LOB locators into Java wrapper classes.
oracle.sql.BLOB blob = (BLOB)rs.getObject(1);
oracle.sql.CLOB clob = (CLOB)rs.getObject(2);
(...process...)
假定有一张表
lob_table(blob_col Blob, clob_col clob)
假定你创建了Statement Object, stmt// Select LOB locator into standard result set.
ResultSet rs =
stmt.executeQuery ("SELECT blob_col, clob_col FROM lob_table");
while (rs.next())
{
// Get LOB locators into Java wrapper classes.
java.sql.Blob blob = (java.sql.Blob)rs.getObject(1);
java.sql.Clob clob = (java.sql.Clob)rs.getObject(2);
(...process...)
}输出强制转换为java.sql.Blob 和 java.sql.Clob,
你接下来可以强制转换成oracle.sql.BLOB 和 CLOB,以便利用 oracle.sql.* 中class的扩展功能,你可以这样转换 // Get LOB locators into Java wrapper classes.
oracle.sql.BLOB blob = (BLOB)rs.getObject(1);
oracle.sql.CLOB clob = (CLOB)rs.getObject(2);
(...process...)
解决方案 »
- ligerui IE8 dailog滚动条 问题 着急求帮助
- 输入输出的一个错误
- JSP数据库操作自动转换成下载
- 谁有 orcle8.1.7.0版本 的 oci.dll 和 ocijdbc8(???).dll
- WebNoteEditor V2 Beta 在线编辑器 For Jsp版本
- JFreeChart时间轴设定问题
- jsp能在vista系统下运行么??本人是菜鸟,谢谢了
- jsp的标志库重要吗?
- JAVA如何返回前一天,今天为Today="20090203",前一天为20090202
- 问:为什么date.getYear()不能够使用。
- 我想制作一个在Jsp页面上向windows地址栏的东西,就是可以自己输入内容,也可以选择的!
- 再次求教从Clob对象中读取数据的问题.
int fileLength =(int) file.length();
InputStream fin = new FileInputStream(file);
PreparedStatement pstmt = con.prepareStatement("insert into tb_file values('aaa.gif',?)");
pstmt.setBinaryStream (1, fin, fileLength);
pstmt.executeUpdate(); 如果你一定要用BLOB存储,你就必须用ORACLE自己的方法: create table tb_file(name varchar(20),detail BLOB);
con.setAutoCommit(false);
stmt.executeUpdate("insert into tb_file values('aaa.gif',empty_blob())"); 下面必须SELECT得到BLOB的对象再向里写: rs = stmt.executeQuery("select detail from tb_file where name='aaa.gif' for upfdate" );
if(rs.next())
{
Blob blob = rs.getBlob(1);
BinaryOutputStream out = ((oracle.sql.BLOB)blob).getBinaryOutputStream();
byte[] b = new byte[((oracle.sql.BLOB)blob).getBufferSize];
InputStream fin = new FileInputStream(file);
int len = 0;
while( (len = fin.read(b)) != -1)
out.write(b,0,len);
fin.close();
out.close();
con.commit();
} 同样读取数据你并不能象LONG ROW那样 InputStream in = rs.getBinaryInputStream("detail"); 而要 Blob blob = rs.getBlob("detail");
in = blob.getBinaryStream();