Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Cara mengimplementasikan ora_hash (hash seedable yang membagi semua tipe data sql menjadi n ember)

Saya percaya Anda berbicara tentang fungsi hash yang sempurna. Fungsi ORA_HASH Oracle bukanlah fungsi hash yang sempurna.

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

Sedekat Anda akan mendapatkan apa yang Anda inginkan adalah array asosiatif. Oracle memilikinya. Mulailah bermain dengan contoh ini:

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;
/  

Catatan:array asosiatif dibangun di atas tabel hash, contoh di atas menggunakan fld1 sebagai kunci hash. Jadi di atas hanya akan berfungsi jika seperti yang Anda jelaskan, hashing sempurna, jika dan hanya jika fld1 adalah bidang yang unik. Itulah yang membedakan di sana untuk dilakukan. Itu tidak selalu diperlukan.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Hitung jumlah perubahan dalam daftar yang dipesan

  2. Alat yang Tepat Membuat Tuning Bekerja Cepat

  3. meneruskan objek dari Java ke prosedur Oracle

  4. Cara menampilkan data tabel lebih jelas di oracle sqlplus

  5. Bagaimana cara mengambil data dari SQL Server ke SqlDataReader bekerja?