fnv_hash() в хеш-значении Impala vs oracle

как мы можем получить такие же хеш-значения в Oracle db, как и в impala. Я перенес таблицы и код из импалы в оракул. Некоторые запросы используют хеш-значения с FNV_HASHфункция в импале, теперь мы должны использовать те же значения и в оракуле. Я использовал следующие функции, но получил другие значения, отличные от значений 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 

Не могли бы вы помочь мне узнать, как получить 64-битные значения Cyypto в oracle, как и в impala.

1 ответ

fnv_hash реализует некриптографическую функцию хеш-Фаулера – Нолла – Во . Oracle ORA_HASH - это проприетарный некриптографический алгоритм хеширования, а STANDARD_HASH реализует ряд стандартных криптографических хешей, таких как SHA1, SHA256, SHA384, SHA512 и MD5. Они никогда не будут производить одинаковый результат, потому что они не выполняют одни и те же вычисления.

Не похоже, что Oracle имеет 64-битный эквивалент fnv_hash.

Другие вопросы по тегам