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

ora_hash को कैसे कार्यान्वित करें (बीज योग्य हैश जो किसी भी sql डेटाटाइप को n बकेट में विभाजित करता है)

मेरा मानना ​​​​है कि आप एक आदर्श हैश फ़ंक्शन के बारे में बात कर रहे हैं। Oracle का ORA_HASH फ़ंक्शन एक आदर्श हैश फ़ंक्शन नहीं है।

http://en.wikipedia.org/wiki/Perfect_hash_function

आप जो चाहते हैं वह जितना करीब होगा, वह एक सहयोगी सरणी है। Oracle के पास वे हैं। इस उदाहरण के साथ खेलना शुरू करें:

set serverout on size 10000
DECLARE
cursor foo 
is 
  select distinct fld1,fld2,fld9  from sometable;

type t is table of foo.%ROWTYPE
  index by varchar2;   -- change the index to an int if you want

myarray t; -- myarray is a table of records -- whatever foo returns

BEGIN
  for x in foo
  loop
      -- index using the first column of the fetched row  "fld1":
      myarray(x.fld1)=x;  -- assign the rowtype to the table of records.      
  end loop;

END;
/  

नोट:एक सहयोगी सरणी हैशटेबल पर बनाई गई है, उपरोक्त उदाहरण fld1 को हैश कुंजी के रूप में उपयोग करता है। ऐसा करने के लिए वहां विशिष्ट है। इसकी हमेशा आवश्यकता नहीं होती है।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. DELETE RESTRICT त्रुटि पर विदेशी कुंजी - Oracle

  2. PHP में कक्षा 'पीडीओ' प्राप्त करने में ओरेकल डीबी से कनेक्ट करने का प्रयास करते समय त्रुटि नहीं मिली

  3. SYS_CONNECT_BY_PATH का उपयोग करके Oracle संचयी गणना

  4. Oracle XMLQuery पासिंग पैरामीटर मान

  5. एचडीएफएस पर ऑरेकल क्लॉब डेटा को एवरो फाइलों में आयात करने के लिए कैसे स्कूप करें?