आप DBMS_SQLHASH.GETHASH
. का उपयोग कर सकते हैं इसके लिए। क्वेरी परिणामों को क्रमित किया जाना चाहिए और उनमें कोई LOB नहीं होना चाहिए, या परिणाम नियतात्मक नहीं होंगे।
select dbms_sqlhash.gethash(q'[select * from some_table order by 1,2]', digest_type => 1)
from dual;
जहां डाइजेस्ट_टाइप 1 =HASH_MD4, 2 =HASH_MD5, 3 =HASH_SH1।
वह पैकेज डिफ़ॉल्ट रूप से किसी को नहीं दिया जाता है। इसका उपयोग करने के लिए, आपको SYS के रूप में लॉगऑन करने और इसे चलाने के लिए किसी की आवश्यकता होगी:
SQL> grant execute on dbms_sqlhash to <your_user>;
क्वेरी परिणामों का आदेश दिया जाना चाहिए, जैसा कि "बग 17082212:DBMS_SQLHASH अलग-अलग पहुंच पथ से भिन्न परिणाम" में वर्णित है।
मुझे यकीन नहीं है कि LOB काम क्यों नहीं करते हैं, लेकिन यह ORA_HASH
फ़ंक्शन के तरीके से संबंधित हो सकता है LOB के साथ अच्छा काम नहीं करता है। जोनाथन लुईस के इस लेख में ORA_HASH
. के कुछ उदाहरण शामिल हैं एक ही LOB डेटा के लिए अलग-अलग परिणाम लौटाता है। और SQL भाषा संदर्भ के हाल के संस्करण चेतावनी देते हैं कि ORA_HASH
LOB का समर्थन नहीं करता है।