Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вопрос по STANDARD_HASH  [new]
Hans Christian Andersen
Member

Откуда: зачем Вам?
Сообщений: 244
Всем добрый день,

создал виртуальное поле в таблице посредством функции HASH_ID:

 HASH_ID VARCHAR2(2000 CHAR) GENERATED ALWAYS AS (CAST(STANDARD_HASH(TO_CHAR("COLUMN1",'DD.MM.RR')||"COLUMN2") as VARCHAR2(2000))) NOT NULL

Известно, что аргумент функции уникальный. Выражение STANDARD_HASH должно тоже возвращать уникальные значения.
Скажите, могут ли возникнуть проблемы с
1. уникальностью (Правильно а понимаю, что SHA1 = 160-bit (20-byte)?)
2. с переводом RAW в VARCHAR2 посредством CAST

Заранее спасибо.

Oracle 12.1.0.2.0
9 апр 19, 23:40    [21857794]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по STANDARD_HASH  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 17182
Hans Christian Andersen
Выражение STANDARD_HASH должно тоже возвращать уникальные значения.

Не должно.
10 апр 19, 04:13    [21857852]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по STANDARD_HASH  [new]
Elic
Member

Откуда: 1984. Выбраковка финно-угром продолжается. КЯЗ
Сообщений: 28823
Hans Christian Andersen
Известно, что аргумент функции уникальный.
Так и нахера тогда козе боян?
Hans Christian Andersen
Выражение STANDARD_HASH должно тоже возвращать уникальные значения.
Как сказочник не понимаешь, что "вероятность стремится к нулю" не означает "=0"?
Hans Christian Andersen
переводом RAW в VARCHAR2 посредством CAST
Сказочник не понимает что заклятием произвольные байты в символы не преобразуются?
10 апр 19, 07:45    [21857902]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по STANDARD_HASH  [new]
chidoriami
Member

Откуда: москва
Сообщений: 19
Hans Christian Andersen
Скажите, могут ли возникнуть проблемы с
1. уникальностью (Правильно а понимаю, что SHA1 = 160-bit (20-byte)?)

вероятность коллизий (проблем с уникальностью) есть, но крайне мала.
скорее всего, вы с ней не столкнетесь.
и да, 20 байт.

Hans Christian Andersen
2. с переводом RAW в VARCHAR2 посредством CAST

оракл и не такое нормально жрет обрабатывает.
вопрос только в том, а надо ли переводить в варчар?
по мне, и raw нормальный тип.
при приведении типов

и также вопрос - почему поле виртуальное?
оно ведь будет высчитываться заново при каждом обращении.
это может быть не гуд.

p.s.
один из коллег утверждает, что проводил сравнения разных функций расчета хеша и алгоритмов.
по его словам, STANDARD_HASH с MD5 быстрее всех остальных вариантов.
правда, MD5 дает 16 байт, т.е. теоретически выше вероятность коллизий =)
но все еще близка к 0
12 апр 19, 16:17    [21860682]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по STANDARD_HASH  [new]
-2-
Member

Откуда:
Сообщений: 14504
chidoriami
быстрее всех остальных вариантов
Это точно. Все остальные варианты потому и называют остальными, потому что все.
12 апр 19, 18:25    [21860787]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить