我在想,根據我所做的實驗,答案是否定的。但是我不確定我是否正確地做着事情。Oracle dbms_utilities.get_hash_value總是爲不同的輸入返回唯一值嗎?
我的功能是:
select buyer_key, DBMS_UTILITY.get_hash_value(buyer_key||'|'||buyer_entity_id||'|'||buyer_io_id||'|'||buyer_line_item_id||'|'||is_billing_enabled||'|'||currency_id_b_trgt||'|'||currency_id_b_prfrd||'|'||ymdh_max,1,POWER(2,16)-1) as hashvalue from network_buyer_dim order by hashvalue asc;
當我運行它,它會返回與重複hashkey值無數行。但是,當我到數據庫並查看這些行(順便說一下,每個buyer_key都是唯一的)時,我看到這些行不包含相同的值。
我是否正確調用該函數?
文檔說的一件事是使用大小爲2的冪(您正在使用2減2的冪)。 http://docs.oracle.com/cd/E11882_01/appdev.112/e25788/d_util.htm#autoId33 – Glenn 2012-08-06 21:06:17
我一定錯了,因爲我的實際代碼使用減1 – 2012-08-07 16:36:14