• PUDN用户
    了解作者
  • Java
    开发工具
  • 7KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 140
    下载次数
  • 2005-08-30 03:35
    上传日期
Connection Oracle9i database Read and Wrote Lob ,long or long raw type and save to file
8.zip
  • www.pudn.com.txt
    218B
  • LongExample2.java
    1.9KB
  • LobExample3.java
    3.4KB
  • LobExample1.java
    4.9KB
  • LongExample1.java
    1.8KB
  • LobExample2.java
    4.9KB
  • LobExample4.java
    2.4KB
内容介绍
import java.sql.*; import java.io.*; import oracle.sql.*; import oracle.jdbc.*; /** * @author Sean * @version 1.0 * @date 2005/8/24 */ public class LobExample2 { public static void readCLOB(Statement stmt,String fileName, String sourceDirectory,String targetDirectory) throws SQLException,IOException { //step 1 : 将包含LOB定位器的行读入结果集 ResultSet rs = stmt.executeQuery("select clob_column from clob_content "); //step 2 : 在JAVA程序中创建一个LOB对象,并且将LOB定位器从结果集读入这个LOB对象。 rs.next(); oracle.sql.CLOB myClob = ((OracleResultSet)rs).getCLOB(1); //ste[ 3 : 从LOB对象获取LOB的组块大小 int chunkSize = myClob.getChunkSize(); //step 4 : 创建一个缓冲区来存储自LOB对象的数据组块 char[] charBuffer = new char[chunkSize]; //step 5 : 创建一个文件对象 String saveFile = targetDirectory +"retrievedCLOB"+ fileName; File myFile = new File(saveFile); //step 6 : 创建输出流对象以便将LOB内容写到新文件 OutputStreamWriter myOutputStreamWriter = new OutputStreamWriter ( new FileOutputStream (myFile)); BufferedWriter myBufferedWriter = new BufferedWriter(myOutputStreamWriter); //step 7 : 从LOB对象获取LOB内容的长度 long clobLength = myClob.length(); //step 8 : 将数据组块从LOB对象读入到第四步中创建的缓冲区。将缓冲区的内容写到新文件 for(long position = 1 ; position<=clobLength;position += chunkSize) { int charRead = myClob.getChars(position,chunkSize,charBuffer); myBufferedWriter.write(charBuffer); } // end of for //step 9 : 关闭流对象 myBufferedWriter.close(); myOutputStreamWriter.close(); System.out.println("Read CLOB and saved file " + saveFile); } // end of readCLOB public static void readBLOB(Statement stmt,String fileName, String sourceDirectory,String targetDirectory) throws SQLException,IOException { ResultSet rs = stmt.executeQuery("select blob_column from blob_content "); rs.next(); oracle.sql.BLOB myBlob = ((OracleResultSet)rs).getBLOB(1); int chunkSize = myBlob.getChunkSize(); long blobLength = myBlob.length(); byte[] bytesBuffer = new byte[chunkSize]; String saveFile = targetDirectory + "readBLOB"+fileName; FileOutputStream myFileOutputStream = new FileOutputStream ( new File(saveFile)); for (long position = 1 ; position <= blobLength ; position += chunkSize) { int byteRead = myBlob.getBytes(position,chunkSize,bytesBuffer); myFileOutputStream.write(bytesBuffer); } // end of for myFileOutputStream.close(); System.out.println("Read BLOB and saved file "+saveFile); } // end of readBLOB public static void retrievedBFILE(Statement stmt,String fileName, String targetDirectory) throws SQLException,IOException { ResultSet rs = stmt.executeQuery("select bfile_column from bfile_content "); rs.next(); oracle.sql.BFILE myBfile = ((OracleResultSet)rs).getBFILE(1); String bfileName = myBfile.getName(); myBfile.fileExists(); myBfile.openFile(); InputStream myInputStream = myBfile.getBinaryStream(); String saveFile = targetDirectory + "retrievedBFILE"+bfileName; saveFile(myInputStream,saveFile); myInputStream.close(); myBfile.closeFile(); System.out.println("Read BFILE and save file "+saveFile); } // end of retrievedBFILE public static void saveFile(InputStream myInputStream,String fileName) throws IOException { FileOutputStream myFileOutputStream = new FileOutputStream ( new File (fileName)); byte[] byteBuffer = new byte[8132]; int byteRead; while((byteRead = myInputStream.read(byteBuffer)) != -1 ) { myFileOutputStream.write(byteBuffer); } //end of while myFileOutputStream.close(); } // end of saveFile public static void main(String[] args) throws SQLException,IOException { DriverManager.registerDriver(new OracleDriver()); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:swatt/swgood@10.10.10.251:1521:test"); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); String sourceDirectory = "D:\\JSPBook\\JDBC\\JDBC_book\\sample_files\\"; String targetDirectory = "D:\\JSPBook\\JDBC\\JDBC_book\\sample_files\\retrieved\\"; readCLOB(stmt,"textContent.txt",sourceDirectory,targetDirectory); readBLOB(stmt,"binaryContent.doc",sourceDirectory,targetDirectory); retrievedBFILE(stmt,"textContent.txt",targetDirectory); stmt.close(); conn.close(); } // end of main }//end of LobExample2
评论
    相关推荐
    • blobTOlongraw.rar
      通过dbms_lob.read和UTL_RAW.CONCAT将blob类型转raw
    • Oracle Database 11g PLSQL程序设计 源代码
      Oracle Database 11g PLSQL程序设计 源代码 Oracle Database 11g PLSQL程序设计 源代码
    • mysql数据库修复专家
      mysql数据库修复工具,支持mysql3 4 5 6 版本的各种报错修复,支持MYD IBD ibdata1文件的修复、
    • oracle资料详解
      希望学习oracle的朋友喜欢。。。
    • oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串
      long raw 1~2GB 可变长二进制数据 LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob 1~4GB 以二进制信息保存数据 三、 DDL语言 1. Create table命令 用于创建表。在创建表时,...
    • oracle数据库修复
      支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 全面支持LOB字段: 支持CLOB、NCLOB和BLOB CLOB...
    • Oracle8i_9i数据库基础
      §2.5.4 LONG(长类型显示字节数) 83 §2.5.5 PAGESIZE(页行数) 83 §2.5.6 PAUSE(暂停) 84 §2.5.7 SPACE(列间空格) 84 §2.5.8 Termout (启/停屏幕显示) 84 §2.5.9 ECHO (启/停命令显示) 84 §2.5.10 TRANSACTION ...
    • 赤兔Oracle数据库恢复软件 v11.6.zip
      5.支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i ) , BINARY FLOAT, BINARY DOUBLE (10g ) 6.全面支持LOB字段:支持CLOB、NCLOB和BLOBCLOB...
    • Oracle数据库恢复工具Oracle Database Unloader(ODU)3.09
      支持的数据类型包括:NUMBER, CHAR, VARCHAR2, NCHAR,NVARHCAR2, LONG, DATE, RAW, LONG RAW, BLOB, CLOB, TIMESTAMP (9i+) , BINARY FLOAT, BINARY DOUBLE (10g+) 导出的数据格式包括纯文本和DMP文件两种。以纯...
    • supermarket-database.rar
      小型超市管理系统 目录 1、项目计划 1.1系统开发目的 1.2背景说明 1.3项目确立 1.4应用范围 1.5定义 1.6参考资料 2、逻辑分析与详细分析 2.1系统功能 2.2数据流图 2.3用户类型与职能 2.4系统开发步骤 2.5系统环境需求 2.6系统安全问题 3、基于UML的建模 3.1语义规则 3.2 UML模型 3.3系统实现图 4、概要设计文档 5、逻辑设计文档 6、物理设计文档 7、小结