我在想,根据我所做的实验,答案是否定的。但是我不确定我是否正确地做着事情。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