考试网 >> IT认证 >> Oracle >> Oracle指导 >> 将Blob数据写入Oracle

将Blob数据写入Oracle

发布时间:2006-06-28 10:23     点击:
分页:[1] 2 3 4 5  下一页

Oracle的Blob字段比较特殊,他比long字段的性能要好很多,可以用来保存例如图片之类的二进制数据。 

  写入Blob字段和写入其它类型字段的方式非常不同,因为Blob自身有一个cursor,你必须使用cursor对blob进行操作,因而你在写入Blob之前,必须获得cursor才能进行写入,那么如何获得Blob的cursor呢?

  这需要你先插入一个empty的blob,这将创建一个blob的cursor,然后你再把这个empty的blob的cursor用select查询出来,这样通过两步操作,你就获得了blob的cursor,可以真正的写入blob数据了。

  看下面的JDBC的demo,把oraclejdbc.jar这个二进制文慈胧菘獗韏avatest的content字段(这是一个blob型字段)

import java.sql.*;

import java.io.*;

import oracle.sql.*;

public class WriteBlob {

public static void main(String[] args) {

 try {

  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());

  Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","fankai","fankai");

  conn.setAutoCommit(false);

  BLOB blob = null;

  PreparedStatement pstmt = conn.prepareStatement("insert into javatest(name,content) values(?,empty_blob())");

  pstmt.setString(1,"fankai");

  pstmt.executeUpdate();

  pstmt.close();

  pstmt = conn.prepareStatement("select content from javatest where name= ? for update");

  pstmt.setString(1,"fankai");

  ResultSet rset = pstmt.executeQuery();

  if (rset.next()) blob = (BLOB) rset.getBlob(1);

  String fileName = "oraclejdbc.jar";

  File f = new File(fileName);
分页:[1] 2 3 4 5  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
在本站搜索相关信息
2003-2005 Ksw123.com All Rights Reserved. - TOP
Copyright © 2006 Ksw123.com. All rights reserved.中国考题网 版权所有