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.