- 浏览: 436113 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
adaylee:
貌似好久没上了
用iptables 实现本地端口转发 -
adaylee:
鲫鱼?哈哈,居然Google到你了
用iptables 实现本地端口转发 -
yflxc:
com.sun.jimi.core.raster.JimiRa ...
java对图片进行等比例缩放 -
bo_hai:
等比例压缩的算法是不是可以改进呢?
java对图片进行等比例缩放 -
Mr.TianShu:
http://www.cppblog.com/deercode ...
java 遍历目录下的文件
以下方法为 OracleDAOUtil中的方法。
1. 插入记录
private static void insert(String id, Connection connection) {
Connection conn = null;
PreparedStatement stmt = null;
String sql = "";
try {
sql = "insert into Test (ID,Value) values(?,empty_clob())"; //先插入空的CLOB对象
conn = connection;
stmt = conn.prepareStatement(sql);
int count = 0;
stmt.setString(++count, id);
stmt.execute();
OracleDAOUtil.updateField(conn, "Test", "ID", id, "Value", "abcd"); //写入数据
} catch (Exception e) {
e.printStackTrace();
throw e;
} finally {
try {
if (stmt != null) {
stmt.close();
stmt = null;
}
} catch (Exception ex) {
}
try {
if (conn != null) {
conn = null;
}
} catch (Exception ex) {
}
}
}
2. 向CLOB字段写入数据
public static void updateField(Connection conn, String tableName, String keyName, String keyValue, String fieldName, String fieldValue) throws WorkflowException
{
PreparedStatement pstmt = null;
PreparedStatement pstmt2 = null;
ResultSet rset = null;
try {
String sql = "select " + fieldName + " from " + tableName + " where " + keyName + "=? for update";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, keyValue);
rset = pstmt.executeQuery();
Clob clob = null;
if (rset.next())
clob = (Clob) rset.getClob(1);
String value = fieldValue;
if (value == null)
value = "";
char[] valueChars = new char[value.length()];
value.getChars(0,value.length(),valueChars,0);
clob.truncate(0); //避免前一次的数据混在第二次的数据中(如果上次的数据比本次的数据多的话)
Writer writer = clob.setCharacterStream(0);
writer.write(valueChars);
writer.close();
} catch (Exception e) {
throw e;
} finally {
if (rset != null) {
try {
rset.close();
rset = null;
} catch (SQLException e) {
throw e;
}
}
if (pstmt != null) {
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
throw e;
}
}
if (pstmt2 != null) {
try {
pstmt2.close();
pstmt2 = null;
} catch (SQLException e) {
throw e;
}
}
}
}
3. 从CLOB字段读数据
public static String readField(Connection conn, String tableName, String keyName, String keyValue, String fieldName) throws WorkflowException
{
String value = "";
PreparedStatement pstmt = null;
ResultSet rset = null;
try {
String sql = "select " + fieldName + " from " + tableName + " where " + keyName + "=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, keyValue);
rset = pstmt.executeQuery();
Clob clob = null;
if (rset.next())
clob = (Clob) rset.getClob(1);
if (clob != null) {
int len = (int) clob.length();
char[] buffer = new char[len];
Reader reader = clob.getCharacterStream();
reader.read(buffer);
reader.close();
value = new String(buffer);
}
return value;
} catch (Exception e) {
throw e;
} finally {
if (rset != null) {
try {
rset.close();
rset = null;
} catch (SQLException e) {
throw e;
}
}
if (pstmt != null) {
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
throw e;
}
}
}
}
以上方法稍作改进就可用于处理BLOB字段。
如果使用Oracle提供的JDBC驱动来处理CLOB和BLOB字段,那么使用Oracle 10g的版本,Oracle 9i的版本对CLOB和BLOB的处理有问题。Oracle 10g JDBC的thin模式也可用于Oracle 9i。
发表评论
-
ORA-01461: can bind a LONG value only for insert into a LONG column
2009-10-30 14:48 4196最近不知道怎么搞得, 好好的信息发布系统时不时的出 ... -
oracle数据类型存储结构
2009-08-02 09:01 2257目标:在oracle服务中确认 ... -
oracle dump 函数
2009-08-01 18:41 5293dump函数(number类型) 笔记 dump 函数能查看 ... -
distinct
2009-05-20 15:43 206distinct这个关键字来过滤掉多余的重复记录只保留一条,但 ... -
ORACLE to_char
2009-03-17 13:19 1308ORACLE to_char的用法 ... -
使用PL/SQL Developer导入数据
2008-12-16 23:43 3137使用PL/SQL Developer工具。 在单个文件不大的情 ... -
oracle随系统启动
2008-12-03 23:49 1074from: http://space.itpub.net/15 ... -
oracle语句优化30个规则
2008-12-03 23:19 972from:http://space.itpub.net/219 ... -
数据库优化集锦
2008-12-01 19:14 1324本文首先讨论了基于第 ... -
oracle恢复被drop掉的表
2008-11-26 19:46 1585以前只知道Windows有个回收站,今天听说Oracle也有个 ... -
oracle session
2008-11-26 17:17 18561.如何查看session级的等待事件? 当我们 ... -
oracle字符集
2008-11-25 16:59 1994一、什么是oracle字符集 ... -
oracle临时表空间为何暴涨
2008-11-19 14:38 2055昨天在做测试的时候发现一个非常奇怪的问题:在程 ... -
oracle10对clob的处理简单化了
2008-11-17 22:51 1752在oracle10g中对于大字段clob的处理简化了,可以像v ... -
sql统计相同项个数并按名次显示
2008-11-17 00:25 6615现在有如下这样一个表: A表 ID Name time --- ... -
oracle 分页sql 语句比较
2008-11-16 18:47 3968说说oracle分页的sql语句,分排序和不排序两种。 当 ... -
oracle 几个常用语句
2008-11-12 20:27 11221、复制表结构 c ... -
解决plsql中文乱码的问题
2008-11-12 19:03 5329xp 系统, plsql 中文显示乱码。 上网查找解决办法。 ... -
oracle10 ora-12154错误的解决办法
2008-11-09 23:05 92149安装好oracle10客户端,配置好网络服务名称,用enter ... -
sql的内联和外联
2008-11-08 14:09 2724假设一堆男女在教堂,有夫妇有单身的,假设男为左表,女为右表 ...
相关推荐
- Oracle提供了强大的包`DBMS_LOB`来处理CLOB数据。 - 常用函数包括`DBMS_LOB.SUBSTR`和`DBMS_LOB.LENGTH`等。 ```sql DECLARE l_clob CLOB; l_length PLS_INTEGER; l_substring VARCHAR2(32767); BEGIN ...
- 在处理CLOB数据时,必须确保参数类型正确设置为`OracleType.Clob`,否则可能导致数据转换错误或数据丢失。 - 当CLOB数据量非常大时,应考虑使用流式操作,避免一次性加载整个CLOB数据到内存中,以减少对系统资源的...
Oracle数据库在处理大对象(LOB)类型,如Clob(Character Large Object)和Blob(Binary Large Object)时,有时需要专门的工具来进行高效且安全的数据导出。这些字段通常存储大量的文本或二进制数据,比如长篇文档...
Mybatis 处理 CLOB、BLOB 类型数据 MyBatis 处理 CLOB、BLOB 类型数据是指在使用 MyBatis 框架时,如何正确地处理大字段类型的数据。CLOB(Character Large OBject)和 BLOB(Binary Large OBject)都是大字段类型...
CLOB数据类型用于存储大量的文本数据,如XML文档或长篇文章,而BLOB则用于存储二进制大对象,如图片、音频或视频文件。在Oracle中,对这类数据的操作通常需要特定的策略和工具,因为它们的大小和性质不同于常规的...
在没有使用ORM框架之前,我们通常直接通过JDBC来处理Clob数据。这涉及到Clob对象的创建、读取和更新操作。创建时,需要调用PreparedStatement的setClob方法;读取时,通过ResultSet的getClob方法获取;更新时,先...
### 读取Oracle数据库中CLOB字段的值 ...通过上述步骤,我们可以有效地读取Oracle数据库中的CLOB字段,并根据具体需求进行相应的数据处理。这对于处理大量文本数据的场景非常重要,有助于提高应用程序的性能和稳定性。
1. CLOB数据类型介绍: - CLOB类型是用来存储最大容量为4GB的单个字符数据,可以是Unicode字符集,支持多种语言。 - 它不同于VARCHAR2,后者限制在4000个字符内,对于超过这个限制的数据,CLOB是理想的选择。 2. ...
Java 中操作 Oracle 的 CLOB 字段是一种常见的操作,在实际开发中,我们经常需要在 Oracle 数据库中存储和读取大型文本数据,这时就需要使用 CLOB(Character Large OBject)类型的字段来存储这些数据。下面我们将...
6. **性能优化**:处理CLOB数据时,注意避免一次性加载整个CLOB内容到内存中,可以分块读取或延迟加载。 7. **事务管理**:由于CLOB操作可能会涉及到较大的数据量,确保正确设置事务的隔离级别和回滚规则,以防止...
其中,处理 Oracle 数据库中的 CLOB 类型数据是一项重要的技能。CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,在 Oracle 数据库中广泛使用。下面我们将详细介绍如何使用 Hibernate 来存取 ...
在数据库管理领域,MySQL和Oracle都是广泛使用的数据库系统,它们在处理特定数据类型时有各自的特点和策略。本文将深入探讨这两个数据库系统如何处理`CLOB`(Character Large Object)和`BLOB`(Binary Large Object...
在Oracle 10g中,CLOB数据类型的处理有时会遇到一些挑战,尤其是在与ORM框架结合使用时。以下将详细介绍相关知识点: 1. **CLOB类型**:CLOB是一种非二进制大对象,用于存储大量字符数据,最大可达到4GB。Oracle 10...
3. **处理CLOB数据**: - 当需要将字符串数据插入CLOB字段时,可以将字符串转换为`Reader`对象。这里使用`StringReader`: ```java Reader clobReader = new StringReader(text); ``` 4. **设置参数**: - `...
System.out.println("存储过程返回的CLOB数据: " + outClob.getSubString(1, (int) outClob.length())); } catch (SQLException e) { e.printStackTrace(); } ``` **BLOB数据存取** 对于BLOB数据,我们可以使用...
- **getCharacterStream()**:返回一个`java.io.Reader`对象,按照Unicode编码读取CLOB数据。 - **getAsciiStream()**:返回一个`java.io.InputStream`对象,按照ASCII编码读取CLOB数据。 当数据库中可能包含中文等...
在处理CLOB数据时,通常会涉及到以下几种常见操作: - 插入CLOB数据 - 更新CLOB数据 - 查询CLOB数据 - 删除CLOB数据 #### Java访问CLOB示例 以下是一个使用Java访问Oracle数据库中CLOB类型的示例代码: ```java ...
更新Blob和Clob数据通常涉及先清除现有数据(`DBMS_LOB.CLEAR`),然后重新插入。也可以直接使用`DBMS_LOB.WRITE`或`DBMS_LOB.CHANGE_LENGTH`进行修改。 5. **删除数据**: 删除表中的LOB字段时,数据库会自动...
而Clob数据可以直接用文本编辑器打开。 #### 知识点三:创建函数实现Blob到Clob的转换 在给定的部分内容中,提供了一个名为`BlobToClob`的函数实现示例,该函数将Blob类型的数据转换为Clob类型。 ```sql CREATE ...
最后返回转换后的CLOB数据。 #### 4. 更新表中的数据 在实际应用中,一旦有了`blob_to_clob`函数,就可以轻松地在SQL语句中调用它,更新表中的数据。例如,`update gs_gift set p.description = blob_to_clob(p....