Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

डेटाटाइप xmltype के कॉलम पर ora_hash का उपयोग कैसे करें

जैसा कि आप पहले से ही जानते हैं, ora_hash long स्वीकार नहीं करता या LOB मान। आप XML सामग्री के पहले 4k या 32k में पास कर सकते हैं, लेकिन यदि आपको यह सुनिश्चित करने की आवश्यकता है कि संपूर्ण XML दस्तावेज़ नहीं बदला है, तो यह पर्याप्त नहीं होगा। और जैसा कि बेन ने बताया, ora_hash अधिकतम 4294967295 बकेट हैं, इसलिए टकराव की संभावना SHA-1 या MD5 की तुलना में अधिक है। जैसा कि दस्तावेज़ीकरण कहता है, ora_hash 'डेटा के एक सबसेट का विश्लेषण करने और एक यादृच्छिक नमूना उत्पन्न करने जैसे संचालन के लिए उपयोगी है'।

आप dbms_crypto . का उपयोग कर सकते हैं पूरे XMLType मान को हैश करने के लिए पैकेज, getClobVal के साथ निकाले गए CLOB के रूप में उपयोग करने में आसान बनाने के लिए रैपर फ़ंक्शन के साथ फ़ंक्शन:

create or replace function my_hash(xml xmltype) return raw is
begin
  return dbms_crypto.hash(src=>xml.getclobval(), typ=>dbms_crypto.hash_sh1);
end;
/

फिर आप अपने XMLType में एक मान के रूप में या एक चयन के हिस्से के रूप में एक कॉलम के रूप में पास कर सकते हैं:

select my_hash(xml) from t42;

MY_HASH(XML)                                 
---------------------------------------------
494C4E7688963BCF312B709B33CD1B5CCA7C0289     



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पीएल/एसक्यूएल में फाइल से बीएलओबी कैसे प्राप्त करें?

  2. Oracle में IDLE टाइमआउट पैरामीटर

  3. Oracle में छिपी विशेषताएं

  4. R12.2 . में एडॉप के कटओवर चरण में क्या होता है

  5. कैसे Oracle में दिनांक फ़ील्ड से केवल दिनांक मान निकालने के लिए?