0

我们如何在 oracle db 中获得与 impala 相同的哈希值。我已将表和代码从 impala 迁移到 oracle。一些查询FNV_HASH在 impala 中使用带有函数的哈希值,现在我们也必须在 oracle 中使用相同的 has 值。我使用了以下函数,但获得了除 fnv_hash() 值之外的不同值。

select ora_hash(col1) from tab1;
o/p Like (32 bit crypto) : 383995946

select standard_hash(col1) from tab1;
o/p Like : 1C573524423F604D0A784304DF9D3987C9FF8491

 but fnv_hash () has different values in impala.
select fnv_hash(col1) from tab1;
o/p like (64 bit crypto) : 560601135861444766 

您能否帮助我了解如何在 oracle 中获得与 impala 相同的 64 位 cyypto 值。

4

1 回答 1

0

fnv_hash实现了一个非加密的Fowler–Noll–Vo 哈希函数。Oracle 的ORA_HASH是专有的非加密哈希算法,STANDARD_HASH实现了许多标准加密哈希,如 SHA1、SHA256、SHA384、SHA512 和 MD5。他们永远不会产生相同的输出,因为他们没有执行相同的计算。

Oracle 似乎没有等效于 fnv_hash 的 64 位。

于 2021-09-29T11:46:09.263 回答