如何比较Oracle中的两个CLOB值

Zac*_*ach 5 sql oracle

我有两张桌子,我想抱怨.其中一列是CLOB类型.我想做这样的事情:

select key, clob_value source_table
minus
select key, clob_value target_table
Run Code Online (Sandbox Code Playgroud)

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

Nic*_*ver 9

格式是这样的:

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; 
Run Code Online (Sandbox Code Playgroud)

如果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
Run Code Online (Sandbox Code Playgroud)