package com.java.to.oracle;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import oracle.jdbc.OraclePreparedStatement;
public class test01 {
public static void main(String args[]) throws SQLException, IOException,
IllegalAccessException, InstantiationException {/*
* try
* {Class.forName(
* "oracle.jdbc.driver.OracleDriver"
* ).newInstance();
* Connection conn =
* DriverManager
* .getConnection(
* "jdbc:oracle:thin:@192.168.60.196:1521:hkcncd6d"
* , "cn85_crd_dbo",
* "welcome1");
* Statement stmt =
* conn
* .createStatement
* (); ResultSet
* rsmm =
* stmt.executeQuery
* (
* "SELECT PH.PTFL_NUM, COUNT(DISTINCT(PH.ASST_SUB_GRP)) FROM CRD_PTFL_HLD PH WHERE PH.ASST_GRP = 'MM' AND ph.batch_id IN (8, 6, 192, 51, 271, 151) GROUP BY PH.PTFL_NUM HAVING COUNT(DISTINCT(PH.ASST_SUB_GRP))=1"
* );
*
* while
* (rsmm.next()) {
* ResultSet rsban =
* stmt
* .executeQuery(
* "SELECT PH.PTFL_NUM, COUNT(DISTINCT(PH.ASST_SUB_GRP)) "
* +
* "FROM CRD_PTFL_HLD PH WHERE PH.ASST_GRP = 'BND' AND ph.batch_id "
* +
* "IN (8, 6, 192, 51, 271, 151) AND PH.PTFL_NUM='"
* +rsmm.getString(
* "PTFL_NUM") +
* "' " +
* "GROUP BY PH.PTFL_NUM HAVING COUNT(DISTINCT(PH.ASST_SUB_GRP))=1"
* ); while
* (rsban.next()) {
* System.out
* .println
* (rsban.getString
* ("PTFL_NUM")); }
*
* } } catch
* (Exception e) {
* e.
* printStackTrace(
* ); }
*/
try {
String str = "e:/test.pdf";
testReadFileFromBlob(str);
System.out.println("OK");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void testReadFileFromBlob(String FileName)
throws java.lang.ClassNotFoundException, SQLException, IOException,
IllegalAccessException, InstantiationException {
byte[] b = new byte[1024];
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection conn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.60.196:1521:hkcncd6d",
"cn85_crd_dbo", "welcome1");
Statement pstmt = conn.createStatement();
String sql = "select pdf from CRFE_PDF_IDX t WHERE t.ptfl_num IN ('126000000001') AND t.pdf_id='15871'";
// pstmt.setInt(1, id);
ResultSet rs = pstmt.executeQuery(sql);
oracle.sql.BLOB pc = null;
while (rs.next()) {
pc = (oracle.sql.BLOB) rs.getBlob(1);
}
InputStream in = pc.getBinaryStream();
OutputStream os = new FileOutputStream(new File(FileName));
int len = 0;
while ((len = in.read(b)) != -1) {
os.write(b, 0, len);
}
os.flush();
os.close();
in.close();
rs.close();
pstmt.close();
conn.close();
}
}
分享到:
相关推荐
Oracle数据库在存储大对象(BLOB)数据时,提供了高效且灵活的方式,使得二进制数据如图片、文档等能够安全地保存在数据库中。批量导出Oracle数据库中的BLOB字段生成图片,是一项常见的需求,尤其对于那些需要将...
Blob类型则用于存储非结构化的二进制数据,如图片、音频文件或PDF文档。由于这些数据量大,常规的SQL查询可能无法有效处理,因此需要专门的工具来提高效率。 在提供的压缩包文件中,我们可以看到以下几个关键组件:...
Blob是SQL标准定义的一种数据类型,它能够存储大量的二进制数据,如图像、音频文件、PDF文档等。在Java中,Blob对象通常由`java.sql.Blob`接口表示,该接口提供了读写Blob数据的方法。 2. **准备工作** 在进行...
本文介绍了一种基于JSP访问ORACLE数据库BLOB字段并显示图形的解决方案,展示了JSP技术、ORACLE数据库BLOB字段、坐标点的存储和读取、图形的显示、排样数据表设计、Samplegraph.jsp的功能、JAVA类的应用等知识点。
利用Java语言实现PB对Oracle中Blob类型的动态操作 摘要:本文介绍了一种利用Java语言实现PB对Oracle中Blob类型的动态操作的方法。该方法通过使用Java存储过程和Oracle中的JDBC来实现对Blob类型数据的动态访问。 ...
"利用Java程序实现Oracle数据库中大对象的存取" 本文主要介绍了利用Java程序实现Oracle数据库中大对象的存取。Oracle数据库系统是应用最广泛的数据平台,使用Java和Oracle相结合开发网络应用程序,可以使应用程序...
在实际操作中,可以通过Hibernate实现Oracle数据库中BLOB数据的存储和删除操作,然后利用Struts2框架展示这些BLOB数据。这样的结合,不仅可以提高开发效率,还能保证应用的性能和稳定性。 ### 实际操作步骤 在实际...
《基于Java与Oracle数据库的...总结来说,该文深入介绍了如何利用Java的图像处理功能和Oracle数据库的BLOB类型,实现图像数据的存储、检索和处理,为Java开发者提供了在实际项目中实施这一技术的理论基础和实践指导。
Java 访问 Oracle 中的 COLB 类型数据 Java 中访问 Oracle 数据库中的 COLB 类型数据是一种常见的操作。在实际开发中,我们经常需要处理大类型数据,如文本数据、图像数据等。Oracle 中的 COLB 类型数据可以存储大...
031709_【第17章:Java数据库编程】_处理大数据对象(2)—处理BLOB数据笔记.pdf 031710_【第17章:Java数据库编程】_CallableStatement接口笔记.pdf 031711_【第17章:Java数据库编程】_JDBC 2.0操作笔记.pdf ...
Oracle对Java的鼎力支持体现在其JDBC驱动上,尽管它与Oracle数据库配合默契,但同时也引入了一些专有特性,比如著名的"CLOB/BLOB问题"。这些问题给开发者带来了额外的挑战,有时需要为不同数据库编写不同的数据访问...
尽管给定的部分内容主要涉及的是一个重复的Java学习社区链接,并未直接提供关于Oracle SQL的具体信息,但从标题和描述“Oracle SQL必备参考.pdf 高清下载”中,我们可以推断出文档可能涵盖的关键知识点与Oracle SQL...
在Java与Oracle应用开发中,会遇到一些常见问题,这些问题涉及到驱动程序加载、大对象存储以及可滚动结果集的处理。以下是对这些问题的详细解释: 1. **驱动程序加载**: - **Class.forName(String)**:这个方法...
在Oracle环境下开发Java程序,经常会遇到与数据库交互的问题。本文将详细解答三个关键知识点:JDBC驱动程序的加载、大对象(LOB)的存储以及可滚动结果集的使用。 首先,加载JDBC驱动程序是连接Oracle数据库的第一...
BLOB 对应的 JDBC 类型是 java.sql.Types.BLOB,Java 类型是 java.sql.Blob。CLOB 对应的 JDBC 类型是 java.sql.Types.CLOB,Java 类型是 java.sql.Clob。STRUCT 对应的 JDBC 类型是 java.sql.Types.STRUCT,Java ...
3. **大对象字段处理**:Oracle数据库中的CLOB和BLOB类型数据需要特殊的处理方式,以确保在Delphi客户端和Java服务端之间的正常传递。 4. **业务逻辑调用**:Delphi客户端如何远程调用Java端定义的业务逻辑,也是...
这里我们将深入探讨MySQL与Oracle数据类型之间的对应关系,以及它们在Java编程语言中的映射。 1. MySQL数据类型: - BIGINT:MySQL中用于存储大整数,对应Oracle的NUMBER类型,可以表示非常大的数值。 - BIT:...
最后,Oracle支持对大型对象(LOBs)的存储,如`CLOB`(Character Large Object)用于存储文本数据,`BLOB`(Binary Large Object)用于存储二进制数据,而`NCLOB`和`BFILE`则分别对应国家字符集的大对象和存储在...