Oracle数据库中CLOB字段的比较,使用Java代码。
来源:互联网 发布:mac 终端文件路径 编辑:程序博客网 时间:2024/05/20 00:13
最近需要比较两个CLOB字段的内容是否相同,得用Java代码实现。 实验了几种方案之后,觉得下面这个比较好一些。
过程如下:
private boolean isEqualCLOB(CLOB sourceCLOB, CLOB targetCLOB) {
boolean retVal = true;
try {
if ((null != sourceCLOB) && (null != targetCLOB)) {
// both not null, should compare.
if (sourceCLOB.length() != targetCLOB.length()) {
// length diff, diff.
retVal = false;
} else {
// length same, should compare the content.
InputStream inStreamSource = sourceCLOB.getAsciiStream();
InputStream inStreamTarget = targetCLOB.getAsciiStream();
retVal = cmpTwoStreams(inStreamSource, inStreamTarget);
inStreamSource.close();
inStreamTarget.close();
} // end compare the length.
} else if ((null == sourceCLOB) && (null == targetCLOB)) {
// both null, equal.
retVal = true;
} else {
// only one is null. diff.
retVal = false;
}
} catch (Exception e) {
// do as you like.
;
}
return retVal;
}
private boolean cmpTwoStreams(InputStream streamSource, InputStream streamTarget) throws IOException {
boolean retVal = true;
byte s = (byte)0;
byte t = (byte)0;
// As we compare the streams only the two CLOB has same length.
while(( s = (byte)streamSource.read()) != -1) {
t = (byte)streamTarget.read();
if (s != t) {
retVal = false;
break;
}
} // end loop of source stream.
return retVal;
}
以上代码,已经测试。
如果有其他好的思路,希望可以交流一下。目的是快速而且占用空间少。
- Oracle数据库中CLOB字段的比较,使用Java代码。
- oracle中clob字段的使用
- JAVA中读取ORACLE的CLOB字段
- 解决比较Oracle中CLOB字段问题
- oracle数据库中CLOB字段的处理问题
- 对oracle数据库中CLOB字段的相关操作
- Java 操作Oracle数据库Clob字段
- Java将数据写入Oracle的Clob字段中
- oracle使用java操作clob类型的字段
- JAVA操作Oracle中CLOB字段
- java读取Oracle中Clob字段
- java 插入oracle中clob字段
- oracle中对clob字段的操作
- java操作oracle 的clob字段
- java 存储oracle的clob字段
- java 处理数据库clob类型的字段
- 用MD5函数处理oracle数据库中clob字段在where条件或者group中使用
- 解决比较Oracle中CLOB字段问题--转自混世者的专栏
- .aspx、MasterPage、.ascx加载顺序
- Lesson 49 At the butcher's 在肉店
- 关于委托
- 字节对齐详解
- Teradata 数据库技术概略之三 —— 数据分布机制(2) 哈希算法
- Oracle数据库中CLOB字段的比较,使用Java代码。
- ---AXFS 文件系统
- java的Collection和Map详解
- Struts 2中的OGNL
- java 编译器 IDE环境概念
- setTimeout 和setInteval
- 第一个外包项目
- Struts2 ognl中的#、%和$符号用法说明
- java模式之单例模式