java在oracle数据库中如何插入读取CLOB值2009年04月17日 星期五 15:19在oracle数据库中如何插入CLOB值 oracle中最常用的varcher2类型最多只能存储4000个字节的内容,一般情况下是能够满足用户的需求的。但是在一些特殊情况下(如要存储图片或者要存储的内容超过了4000个字节),varcher2就满足不了这个需求了。这个时候我们可以借助于oracle里面的大字段CLOB后者 BLOB。举例如下: 首先,在数据库中建一张表news,为了简单起见,只有一个字段content(CLOB)。做好准备工作后就可以开始我们的CLOB之旅了。 以下是插入CLOB的代码: import java.sql.*; import java.io.*; public class TestClob{ public void TestClob(){} public static void main(String args[]){
try{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connectionconn=DriverManager.getConnection ("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt");
conn.setAutoCommit(false);
//第一步:插入一个空的
CLOB String sql1="insert into news(content,id) values (EMPTY_CLOB(),'1')";
PreparedStatement ps1=conn.prepareStatement(sql1);
ps1.executeUpdate();
ps1.close();
//第二步:取出该CLOB
String sql2="select content from news for update";
PreparedStatement ps2=conn.prepareStatement(sql2);
ResultSet rs2=ps2.executeQuery();
while (rs2.next()){
oracle.sql.CLOB clob=(oracle.sql.CLOB)rs2.getClob(1);
BufferedWriter out=new BufferedWriter(clob.getCharacterOutputStream());
String content="1234";
//假定这是新闻的内容,当然可以也可以是其他的内容
out.write(content,0,content.length());
out.close(); }
conn.commit();
} catch(Exception e){e.printStackTrace();} } } 既然插入进去了,那我们还得要检验一下:插进去的是不是你想插进去的内容?以下就是读取CLOB的代码: import java.sql.*; import java.io.*; public class ReadClob{ public void ReadClob(){} public static void main(String args[]){ try{ Class.forName("oracle.jdbc.driver.OracleDriver"); Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ora32","tjpt","tjpt"); String sql1="select content from news"; PreparedStatement ps1=conn.prepareStatement(sql1); ResultSet rs1=ps1.executeQuery(); while (rs1.next()){ oracle.sql.CLOB clob=(oracle.sql.CLOB)rs1.getClob(1); BufferedReader in=new BufferedReader(clob.getCharacterStream()); StringWriter out=new StringWriter(); int c; while((c=in.read())!=-1){ out.write(c); } String content=out.toString(); System.out.println (content);//输出CLOB内容 } } catch(Exception e){e.printStackTrace();} }}
分享到:
相关推荐
### 数据库读取CLOB字段 #### 概述 在Oracle数据库中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型。CLOB能够容纳4GB的文本信息,适用于存储如文章、报告或者XML文档等大型文本数据。...
`getCharacterStream()`方法返回一个输入流,可以用来读取CLOB中的字符数据。 ```java Reader reader = clob.getCharacterStream(); ``` 3. **读取内容**: 使用`BufferedReader`来逐行读取CLOB中的内容,并将...
在探讨“数据库中CLOB类型转换的问题”这一主题时,我们首先需要理解CLOB(Character Large Object)数据类型的基本概念及其在数据库中的应用场景。随后,将深入分析CLOB类型转换过程中可能遇到的问题,并提供相应的...
java读取oracle数据库中clob字段 把oracle数据库中字段类型为clob的字段值以字符串的形式读取出来
本主题主要探讨如何使用JDBC有效地操作Oracle数据库中的CLOB类型字段,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)等操作。 首先,我们需要理解CLOB的基本概念。CLOB是一种数据库对象,...
这个TypeHandler实现了将String转换为CLOB并插入数据库,以及从CLOB读取回String。 4. **在Mapper XML文件中使用** 在Mapper的XML文件中,确保在CLOB类型的字段上使用了正确的TypeHandler,例如: ```xml ...
在数据库管理中,存储非结构化数据如图片、音频或视频文件时,通常会使用`CLOB`(Character Large Object)和`BLOB`(Binary Large Object)这两种数据类型。Oracle数据库系统支持这两种数据类型,用于存储大量文本...
程序清单中的Java代码展示了如何从一个名为`MAXPRESENTATION`的数据库表中读取CLOB数据,并将其写入到本地文件系统。这个过程涉及到几个关键步骤: 1. **数据库连接**:首先,代码通过`DriverManager`注册并加载...
3. **读取CLOB内容**:由于CLOB存储的是大量字符数据,我们需要逐段读取。可以使用`getSubString()`方法来获取特定范围内的字符串。 ```java String xmlContent = clob.getSubString(1, (int) clob.length()); ``` ...
在示例代码中,可以看到使用`empty_clob()`函数来创建一个空的CLOB对象,并通过`CLOB.setString()`方法向CLOB中写入数据。此外,还可以通过`PreparedStatement`的`setClob()`方法直接将CLOB对象作为参数传递,以简化...
在Oracle数据库中,`CLOB`(Character Large Object)是一种用于存储大量文本数据的数据类型。由于其能够存储非常大的文本块(最大可达4GB),因此常被用于存储文章、报告或任何其他大型文本内容。然而,在处理CLOB...
在Oracle数据库中,读取CLOB数据主要通过`CLOB`类的实例化对象完成。当执行SQL查询并获取结果集后,可以通过调用`ResultSet`对象的`getCLOB()`方法来获取CLOB字段的值。获取到CLOB对象后,通常会使用`...
5. **读取CLOB内容**:使用`Clob`接口提供的`getCharacterStream()`或`getAsciiStream()`方法获取CLOB的输入流。对于纯文本,通常使用`getCharacterStream()`。如果CLOB包含非ASCII字符,可能需要使用`...
在 Oracle 数据库中,CLOB 类型对应的数据库类型是 CLOB,在 MySQL 中对应的类型是 TEXT 或 LONGTEXT。 BLOB 类型用于存储二进制数据,可以存储图片、音乐、视频等文件。在 Oracle 数据库中,BLOB 类型对应的数据库...
- 插入:可以使用PreparedStatement的`setClob()`方法设置CLOB值,`setBlob()`方法设置BLOB值,然后调用JdbcTemplate的`update()`方法执行SQL。 - 查询:同样使用PreparedStatement的`getClob()`和`getBlob()`方法...
Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)类型的字段来存储这些数据。下面我们将...
在DELPHI中,通常会使用ADO(ActiveX Data Objects)或DBX(Database Express)等组件来访问数据库,这些组件提供了对CLOB和BLOB的支持。 1. ADO组件处理CLOB和BLOB: - 使用TADOQuery、TADODataset等组件与数据库...
- **getCharacterStream()**:返回一个`java.io.Reader`对象,按照Unicode编码读取CLOB数据。 - **getAsciiStream()**:返回一个`java.io.InputStream`对象,按照ASCII编码读取CLOB数据。 当数据库中可能包含中文等...
3. **读取CLOB数据**: - 使用`getClob`方法获取CLOB对象,然后通过`getCharacterStream`获取字符流读取内容。 ```java CLOB clob = (CLOB) rs.getClob("FLD_CONTENT"); Reader reader = clob....