、在Oracle 10g中的新的,方便处理Clob 大字段的 JDBC Api
2、以及一个java 中处理大字段的一个示例程序
A、什么是Clob
LOBs (Large Ojbects) 用来存储没有结构的数据,比如大文本内容,图像文件,或是视频等等。
·Oracle里有3种LOB,BLOB(Binary LOB),CLOB(Character LOB),和NCLOB(National Character LOB).
·每一个LOB对象会存储成为一个系统文件,被称为BFILEs.
B、处理Clob
在10g之前Oracle 提供了从java.sql.CLOB扩展的oracle.sql.CLOB对象来处理。从10g以后Oracle的jdbc加入了新的API,OraclePreparedStatement增加了新的Api.OraclePreparedStatement.setStringForClob(),这个方法没有
OraclePreparedStatement.setString()这个方法的32765的长度限制。正如你想象的一样,OraclePreparedStatement.getString(),这个方法照旧,还是一样可以从CLOB字段取得完整的内容。
C、示例程序
方法一:标准的jdbc api
注意,前边提到的 setStringForClob 方法,在标准的 jdbc Api 里面是没有,这里需要把一个 SetBigStringTryClob 属性设置到数据库连接,这样setString()这个方法就会试图用CLOB方式来处setString.
a、准备数据库
CREATE TABLE clob_tab (clob_col CLOB);
b、创建数据库连接
import java.sql.Connection;
import java.sql.DriverManager;
import oracle.jdbc.OracleDriver;
import java.util.Properties;
..........
// 定义数据库连接变量
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "scott";
String password = "tiger";
// 准备创建数据库连接的属性
Properties props = new Properties();
props.put("user", user );
props.put("password", password);
props.put("SetBigStringTryClob", "true");
//注意,这是有必要的
// 加载数据库驱动
DriverManager.registerDriver(new OracleDriver());
// 获得数据库连接
Connection conn = DriverManager.getConnection( this.url, this.props );
c、小试:
PreparedStatement pstmt = conn.prepareStatement(
"INSERT INTO clob_tab VALUES(?)");
//读入大文本
String str = this.readFile("bigFile.txt");
//用setString方法来把大文本写入Clob字段
//要确保在 SetBigStringTryClob 属性已经设置
pstmt.setString(1, str);
pstmt.executeUpdate();
方法二:非jdbc标准,Oracle api方式
import java.sql.*;
import java.io.*;
import java.util.*;
import oracle.jdbc.*;
import oracle.jdbc.pool.*;
..........
// sql
String sql = "INSERT INTO clob_tab VALUES(?)";
// 读入大文本(大于 32765 字节).
//readFile() 只是一个方法用来读取文本,返回字符串
String str = this.readFile("bigFile.txt");
// 新建 OraclePreparedStatement , 注意比较这里
opstmt = (OraclePreparedStatement)conn.prepareStatement(sql);
// 调用 setStringForClob 方法来写入Clob
opstmt.setStringForClob(1,str);
// 执行
opstmt.executeUpdate();
...........
D、用getString()读取Clob
ResultSet.getString()方法并没有 32765 字节的限制,以下就是读取CLOB字段的方法
.....
PreparedStatement pstmt = null;
ResultSet rset = null;
.......
// 执行Sql,返回结果集
String sqlCall = "SELECT clob_col FROM clob_tab";
pstmt= conn.prepareStatement(sqlCall);
rset = pstmt.executeQuery();
String clobVal = null;
// 读取CLOB字段
while (rset.next()) {
clobVal = rset.getString(1);
System.out.println("CLOB length: "+clobVal.length());
}
来源:http://developers.sun.com.cn/blog/nile/entry/200703094
分享到:
相关推荐
MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型,用于存储大量的数据。 CLOB 类型...
在数据库管理中,存储非结构化数据...综上所述,`CLOB`和`BLOB`都是在Oracle中存储图片的有效方法,具体选择哪种方式取决于应用场景和需求。`ClobAndBlob`工具提供了一种便捷的方式来体验和比较这两种方式的使用效果。
- 执行导出:工具将读取数据库中的大字段数据,根据配置进行处理,并保存到本地或远程位置。 通过这个工具,用户可以避免直接编写复杂的SQL脚本,更高效地管理和备份Oracle数据库中的大对象数据。同时,利用ORM框架...
在Oracle数据库中读取CLOB字段通常涉及数据库连接、SQL查询、CLOB对象处理以及资源管理等多个环节。上述示例展示了如何在Java中实现这一过程。需要注意的是,在实际应用中还应该考虑更多的异常处理机制,以确保程序...
在实际应用中,需要确保代码正确处理了不同数据库之间的数据类型差异,比如MySQL的TEXT到ORACLE的CLOB,同时考虑到大字段的处理。 总结来说,处理ORACLE数据库中的大字段数据时,应关注存储模式选择、批量操作、...
在这个示例中,我们将探讨如何使用JSP(JavaServer Pages)与HTML编辑器FCKeditor相结合,来处理Oracle数据库中的CLOB(Character Large Object)类型的大字段。CLOB类型用于存储大量的文本数据,如文章、报告或HTML...
在Java中,当我们需要通过JDBC(Java Database Connectivity)接口与Oracle数据库交互时,处理CLOB字段可能会遇到一些挑战。这篇文档将详细阐述如何在JDBC中有效地读取和操作Oracle数据库的CLOB字段,并将其转换为...
Oracle JDBC驱动提供了OracleClob类,支持通过InputStream和OutputStream进行流式操作。 总的来说,处理Oracle数据库中的CLOB字段,关键在于正确地创建和使用Clob对象,并结合JDBC API进行操作。在处理大量文本数据...
然而,在 Oracle8i 版本之前,对大字段 CLOB 仍然不支持在 where 子句直接的 Like 操作。这使得开发者无法直接对 CLOB 字段中的内容进行 Like 查找。幸运的是,通过使用 DBMS_LOB 包,我们可以实现对 CLOB 字段中的...
Java读取Oracle大字段数据(CLOB)是Java开发中常见的操作之一, Oracle大字段数据(CLOB)是一种大规模的文本数据类型,用于存储大量的文本数据。 Java读取Oracle大字段数据(CLOB)有多种方法,本文将详细介绍...
通过以上步骤,我们可以成功地在Spring与Hibernate框架中处理Oracle 10g数据库中的CLOB字段。这种方式不仅可以提高应用程序的效率,还能保证数据的完整性和一致性。此外,合理的配置和编码实践也能够进一步提升系统...
了解并熟练掌握这些知识点,对于在ODI10g环境中处理大字段数据至关重要。这不仅可以提高数据集成的效率,还能确保大规模非结构化数据的安全和准确迁移。在ODI11g及后续版本中,这些概念和方法依然适用,体现了ODI在...
因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...
oracle中字段存储类型为clob时,查询时需要做特殊处理,此时查询语句需要做更新
最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。 blob字段直接用 select * from table_name where column like ‘%%'查找的时候是不能实现...
但随着数据库技术的发展,越来越多的数据库厂商提供了更加简单的方式来操作这些大字段。例如,Oracle数据库提供了支持以String方式处理Clob的新驱动程序。 在Hibernate框架中,可以直接将数据库的Clob字段映射为...
接下来,我们关注如何在Oracle数据库中处理大字段类型CLOB。Oracle数据库支持多种数据类型,其中CLOB(Character Large Object)用于存储大量字符数据,如长篇文章、HTML代码等。 1. **创建表结构**:在Oracle中...
Oracle数据库在存储大对象...总之,批量导出Oracle数据库中的BLOB字段生成图片涉及到了数据库连接、SQL查询、BLOB数据处理和文件I/O等多个技术环节。掌握这些知识点对于管理和维护包含二进制数据的数据库系统至关重要。
一个完整的工程,主要功能为:spring+hbernate对clob、blob字段的处理 包括:数据脚本、典型的SSH框架处理,以及spring、hibernate数据批量保存等...数据环境为:oracle 10G 开发:Mycelipse5.1 Spring1.2 Hibernate3.0;
总结,本示例通过使用Hibernate的`@Lob`注解展示了如何在Java Web项目中处理数据库的大字段,同时结合Struts框架进行前端控制,提供了完整的源码和数据库脚本,便于开发者理解和实践。对于需要处理大量文本或二进制...