Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 下操作blob字段是否会产生大量redo

操作blob字段是否会产生大量redo,答案是不会,下面来做一个实验,测试Oracle数据库版本是11.2.0.1.0:在CentOS 6.4下安装Oracle 11gR2(x64) http://www.linuxidc.com/Linux/2014-02/97374.htmOracle 11gR2 在VMWare虚拟机中安装步骤 http://www.linuxidc.com/Linux/2013-09/89579p2.htmDebian 下 安装 Oracle 11g XE R2 http://www.linuxidc.com/Linux/2014-03/98881.htm
 
--创建一张表做测试之用
 
create table test_blob
 (
  id number,
  tupian blob
 );import java.io.FileInputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;import oracle.sql.BLOB;public class BlobExample {
    static final String driver_class  = "oracle.jdbc.driver.OracleDriver";
    static final String connectionURL = "jdbc:oracle:thin:@10.10.15.25:1521:orcl";
    static final String userID        = "test";
    static final String userPassword  = "test";    private void insertTestBlob() {
        Connection conn=null;
        Statement stm=null;
        ResultSet rs=null;
        BLOB blob = null;
        FileInputStream fin=null;
        OutputStream out=null;
        try{
            conn = DriverManager.getConnection(connectionURL, userID, userPassword);
            stm = conn.createStatement();
            conn.setAutoCommit(false);
            String sql = "insert into test_blob values(1,EMPTY_BLOB())";
            stm.executeUpdate(sql);
            rs = stm.executeQuery("SELECT tupian FROM test_blob WHERE id=1 FOR UPDATE ");
          fin = new FileInputStream("d://20130317.jpg");
          byte[] blobBuf = new byte[(int)fin.available()];
          fin.read(blobBuf);
          fin.close();          if(rs.next()) {
            blob = (oracle.sql.BLOB)rs.getBlob(1);
            out = blob.getBinaryOutputStream();
            out.write(blobBuf);
            out.close();
            conn.commit();
          }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try {
                rs.close();
                stm.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
    public static void main(String args[]){
        BlobExample  blobClobExample = new BlobExample();
        blobClobExample.insertTestBlob();
    }
}更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-06/102740p2.htm
  • 1
  • 2
  • 下一页
Oracle SQL Performance Analyzer的使用【Oracle案例】ORA-01722 错误解决相关资讯      Oracle blob 
  • 访问Oracle数据链路的blob字段值  (09/02/2014 21:23:52)
  • Oracle数据库blob类型转换为  (06/18/2013 08:03:26)
  • 使用Hibernate处理Oracle中的Blob  (02/15/2014 19:05:55)
本文评论 查看全部评论 (0)
表情: 姓名: 字数

版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图