sql - 如何比较 Oracle 中的两个 CLOB 值

标签 sql oracle

我有两张 table 我想比较。其中一列是 CLOB 类型。我想做这样的事情:

select key, clob_value source_table
minus
select key, clob_value target_table

不幸的是,Oracle 无法对 clob 执行减号操作。我怎样才能做到这一点?

最佳答案

格式是这样的:

dbms_lob.compare(  
lob_1    IN BLOB,  
lob_2    IN BLOB,  
amount   IN INTEGER := 18446744073709551615,  
offset_1 IN INTEGER := 1,  
offset_2 IN INTEGER := 1)  
RETURN INTEGER; 

如果 dbms_lob.compare(lob1, lob2) = 0,则它们是相同的。

这是基于您的示例的示例查询:
Select key, glob_value  
From source_table Left Join target_table  
  On source_table.key = target_table.key  
Where target_table.glob_value is Null  
  Or dbms_lob.compare(source_table.glob_value, target_table.glob_value) <> 0

关于sql - 如何比较 Oracle 中的两个 CLOB 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/85675/

相关文章:

sql - 在 Amazon Athena 中按索引选择行

等同于SQL Server OFFSET

sql - Grails迁移插件创建触发器

sql - 什么是单例选择/查询?

python - 如何将 python crypt 对象转换为 csv,以便我可以对内容调用 csv 方法

sql - 选择 TOP 2 结果导致没有循环的变量

mysql - 对于具有大量连接的查询,运行 order by 速度较慢

sql - PostgreSQL 多列索引连接与比较 ("<"和 ">") 运算符

oracle - 在 ubuntu 上重置 JDBC 和 Oracle 11g 连接

java - LONG RAW 列的 jdbc 类型和 java 类型是什么?