特别长的字符串 想存到数据库中,的clob大字段中,大概4000字时报错,字符串太长,原因是sql语句大小不能超过4K,所以报这错,下面是我在网上找到的解决方法
package com.sinocec.model;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Writer;
import java.sql.Clob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class ClobTest {
private static Connection conn;
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.11:1521:orcl","scott","tiger");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws SQLException, IOException {
//testInsert();
//testUpdate();
//testRead();
}
private static void testInsert() throws SQLException {
String sql = "insert into TECDESIGNALBUM (td_id,FILENAME,note) values (350,'bb',empty_clob())";
Statement stm = conn.createStatement();
stm.execute(sql);
stm.close();
}
private static void testUpdate() throws SQLException, IOException {
String bigdata = "这是一个大字段。。。";
String sql = "select note from TECDESIGNALBUM where td_id = 350 for update";
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery(sql);
while (rs.next()) {
Clob c = rs.getClob(1);
c.truncate(0);// clear
Writer w = c.setCharacterStream(1L);//The first position is 1
w.write(bigdata);
w.close();
c.setString(c.length(), bigdata);
conn.commit();
}
conn.close();
}
private static void testRead() throws SQLException, IOException {
String sql = "select content from test_clob where id = 1";
PreparedStatement pstm = conn.prepareStatement(sql);
ResultSet rs = pstm.executeQuery();
while (rs.next()) {
Clob clob = rs.getClob("content");
System.out.println("clob.getSubString(1, 2) --> " + clob.getSubString(1, 2));
System.out.println("clob.getSubString(1, (int)clob.length()) --> " +
clob.getSubString(1, (int)clob.length()));
BufferedReader r = new BufferedReader(clob.getCharacterStream());
String s;
while ((s = r.readLine()) != null) {
System.out.println(s);
}
r.close();
}
}
}
分享到:
相关推荐
3. **处理CLOB对象**:获取结果集中的CLOB对象,并对其进行读取或操作。 4. **关闭资源**:最后确保关闭所有的数据库连接和释放相关的资源。 #### 示例代码分析 下面是一个Java方法`clobRead()`的具体实现,用于从...
在这个示例中,我们将探讨如何使用JSP(JavaServer Pages)与HTML编辑器FCKeditor相结合,来处理Oracle数据库中的CLOB(Character Large Object)类型的大字段。CLOB类型用于存储大量的文本数据,如文章、报告或HTML...
Java读取Oracle大字段数据(CLOB)是Java开发中常见的操作之一, Oracle大字段数据(CLOB)是一种大规模的文本数据类型,用于存储大量的文本数据。 Java读取Oracle大字段数据(CLOB)有多种方法,本文将详细介绍...
因此,"jdbc批量插入大字段"这个话题旨在探讨如何高效地通过Java JDBC来实现Blob字段的批量插入,以提高性能。 首先,我们需要了解JDBC(Java Database Connectivity),它是Java编程语言与各种数据库之间通信的...
本文将深入探讨在Hibernate中如何有效地管理和操作大字段,以确保性能和数据完整性的最佳实践。 一、CLOB与BLOB类型 1. CLOB:CLOB用于存储非结构化的文本数据,如长篇小说、XML文档等。在Hibernate中,CLOB对应的...
在实际应用中,需要确保代码正确处理了不同数据库之间的数据类型差异,比如MySQL的TEXT到ORACLE的CLOB,同时考虑到大字段的处理。 总结来说,处理ORACLE数据库中的大字段数据时,应关注存储模式选择、批量操作、...
MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型,用于存储大量的数据。 CLOB 类型...
本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)等操作。 首先,我们需要理解CLOB的基本概念。CLOB是一种数据库对象,...
- **准备环境**:首先确保已经安装了Oracle数据库客户端和相应的驱动程序,例如JDBC驱动,以便通过编程语言(如Java、Python等)与数据库交互。 - **连接数据库**:使用相应的连接字符串、用户名和密码建立与...
但随着数据库技术的发展,越来越多的数据库厂商提供了更加简单的方式来操作这些大字段。例如,Oracle数据库提供了支持以String方式处理Clob的新驱动程序。 在Hibernate框架中,可以直接将数据库的Clob字段映射为...
2. **Oracle.ManagedDataAccess.dll**:这是Oracle官方提供的Managed Driver,它是一个.NET Framework库,允许开发者在.NET环境中直接访问Oracle数据库,支持Clob和Blob操作。 3. **SqlSugar.dll**:这是一个流行的...
Oracle数据库中的CLOB(Character Large Object)类型是用来存储大量字符数据的,比如长文本、XML文档等。在Java中,当我们需要通过JDBC(Java ...确保高效、安全地操作这些大字段,可以提高应用程序的性能和用户体验。
本示例将详细介绍如何在Hibernate中操作数据库的大字段。 首先,我们来理解“大字段”在数据库中的概念。在SQL标准中,BLOB(Binary Large Object)和CLOB(Character Large Object)用于存储大量的二进制数据和...
这篇博客文章“读写大字段内容到数据库”探讨了如何处理这类数据,特别是在Java环境下。我们将深入讨论相关的知识点。 首先,Blob类型在SQL中用于存储可变长度的非结构化数据。它与Clob(Character Large Object)...
### Spring与Hibernate处理大字段(CLOB/BLOB) 在企业级应用开发中,经常会遇到需要存储大量文本或二进制数据的情况,这时就需要用到数据库的大字段类型如CLOB(Character Large Object)和BLOB(Binary Large ...
java对oracle大字段读取类,因项目需求要对大字段进行存取,在网上搜集了些,自己加工了些。用起来很方便!
总之,处理大字段是Java企业级应用开发中的常见挑战,通过合理的数据模型设计、数据库优化和框架配置,我们可以有效地管理和操作这些大数据。这个"spring1.2+hibernate2对大字段的处理实例"就是一个很好的学习资源,...
用户只需提供必要的连接信息和表字段名,就能自动批量导出BLOB字段中的图片。 总之,批量导出Oracle数据库中的BLOB字段生成图片涉及到了数据库连接、SQL查询、BLOB数据处理和文件I/O等多个技术环节。掌握这些知识点...
这个版本相对较为老旧,可能存在与新版本Oracle数据库(如Oracle 11g XE)的兼容性问题,尤其是在处理大字段(如`VARCHAR2`、`CLOB`等)时。现代的Oracle数据库支持更大的字段长度,而旧版驱动可能未更新相应的处理...
5. **批处理**:在进行大量大字段操作时,可以使用批处理更新或插入,减少数据库交互次数,提高效率。 6. **数据库层面的优化**:例如,使用Oracle数据库时,可以优化表结构、索引以及存储过程,以适应大字段的处理...