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

Oracle में एक पंक्ति का sha1-हैश बनाना

पैकेज DBMS_CRYPTO हैश उत्पन्न करने के लिए सही पैकेज है। यह डिफ़ॉल्ट रूप से सार्वजनिक को नहीं दिया जाता है, आपको इसे विशेष रूप से देना होगा (GRANT EXECUTE ON SYS.DBMS_CRYPTO TO user1 )।

इस फ़ंक्शन का परिणाम डेटाटाइप RAW . का है . आप इसे RAW . में स्टोर कर सकते हैं कॉलम या इसे VARCHAR2 . में बदलें RAWTOHEX . का उपयोग करके या UTL_ENCODE.BASE64_ENCODE कार्य।

HASH इनपुट के रूप में तीन डेटाटाइप स्वीकार करने के लिए फ़ंक्शन अतिभारित है:RAW , CLOB और BLOB . निहित रूपांतरण के नियमों के कारण, यदि आप VARCHAR2 . का उपयोग करते हैं इनपुट के रूप में, Oracle इसे RAW . में बदलने का प्रयास करेगा और संभवतः विफल हो जाएगा क्योंकि यह रूपांतरण केवल हेक्साडेसिमल स्ट्रिंग्स के साथ काम करता है।

यदि आप VARCHAR2 . का उपयोग करते हैं फिर, आपको इनपुट को बाइनरी डेटाटाइप या CLOB . में बदलने की आवश्यकता है , उदाहरण के लिए:

DECLARE
   x RAW(20);
BEGIN
   SELECT sys.dbms_crypto.hash(utl_raw.cast_to_raw(col1||col2||to_char(col3)), 
                               sys.dbms_crypto.hash_sh1) 
     INTO x 
     FROM t;
END;

आपको DBMS_CRYPTO.hash . के दस्तावेज़ीकरण में अतिरिक्त जानकारी मिलेगी



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं अपने मामले में Oracle में SQL कैसे लिख सकता हूँ?

  2. Oracle PL/SQL में INR मुद्रा (भारतीय रुपये) के लिए अंकों/संख्याओं को शब्दों में बदलना

  3. Oracle तालिका 2 में सम्मिलित करें, फिर तालिका 1 से हटाएं, विफल होने पर अपवाद

  4. क्या कर्सर में पीएल/एसक्यूएल चर प्रभावी रूप से बाध्य पैरामीटर के समान हैं?

  5. पीएलएसक्यूएल में प्रतिबिंब?