在Oracle数据库中比较BLOB和其他BLOB的区别

8
如何检查数据库中blob的重复项。我有一个名为“documents”的表格,但是我不确定如何检查其中是否有重复项。我知道应该使用dbms_lob.compare函数,但在阅读了一些关于此主题的帖子和文章后,我仍然不理解这个函数的用法。
“Documents”表格有document_id列和data(blob)列。我该如何检查document_id = 1是否有重复项?

2
你需要处理多少行数据,有多少数据量,以及需要多频繁地进行此操作?如果数据量很大,使用 dbms_lob.compare 会随着行数的增加而变慢;相比之下,计算哈希值并查找重复项可能更好。 - Jeffrey Kemp
1个回答

15

可以查看其他类似的答案,像这个。 "如果 dbms_lob.compare(lob1, lob2) = 0,它们是相同的。"

select *
from documents dup
join documents orig on orig.document_id = 1
    and dup.document_id <> orig.document_id
where dbms_lob.compare(orig.blob, dup.blob) = 0;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接