2017-12-06 7 views
1

データベースにBLOBが重複していないかどうかを確認する方法。私はデータベース内にドキュメントテーブルを持っていますが、そのうちの1つが重複しているかどうかを確認する方法はわかりません。 dbms_lob.compare関数を使用するはずですが、トピックに関するいくつかのスレッドと記事を読んだ後、私はまだこれを理解していません。Oracleデータベース内のBLOBと他のBLOBを比較します。

ドキュメントテーブルには、document_idカラムとdata(blob)カラムがあります。 document_id = 1に重複があるかどうかをどうやって確認できますか?

+2

これを行うには、いくつの行数、データ量、およびどのくらいの頻度で行う必要がありますか?そこにたくさんある場合、 'dbms_lob.compare'はより多くの行が遅くなります;ハッシュを計算してその代わりに重複を探す方が良いかもしれません。 –

答えて

3

他の同様の回答、like this oneを参照してください。 "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; 
関連する問題