Heim >Datenbank >MySQL-Tutorial >Oracle 下操作blob字段是否会产生大量redo

Oracle 下操作blob字段是否会产生大量redo

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 16:49:29829Durchsuche

操作blob字段是否会产生大量redo,答案是不会,下面来做一个实验,测试Oracle数据库版本是11.2.0.1.0:

操作blob字段是否会产生大量redo,答案是不会,下面来做一个实验,测试Oracle数据库版本是11.2.0.1.0:

在CentOS 6.4下安装Oracle 11gR2(x64)

Oracle 11gR2 在VMWare虚拟机中安装步骤

Debian 下 安装 Oracle 11g XE R2
 
--创建一张表做测试之用
 
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();
    }
}

更多详情见请继续阅读下一页的精彩内容:

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:AWR的基本知识Nächster Artikel:ORA-12520错误解决方法