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

Откуда:
Сообщений: 181
Добрый день.
Подскажите, пожалуйста, как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей(varchar2(255) и number(содержит уникальные значения от 1 до 17))?
ora_hash не использую дабы не получить в дальнейшем проблемы с дублями.
28 апр 17, 12:21    [20443260]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
AmKad
Member

Откуда:
Сообщений: 4868
israelshamir,

Конкатенация двух полей через разделитель, с приведением числа к строке. В качестве разделителя использовать символ или набор символов, которые гарантированно не встречаются в исходном строковом поле.

А зачем?
28 апр 17, 12:37    [20443316]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
israelshamir
Member

Откуда:
Сообщений: 181
AmKad,
Подстраиваюсь под местную самописную приблуду для разработки интерфейса веб приложений и схему данных. Извиняюсь, не уточнил, мне требуется на выходе число в качестве уникального идентификатора.
28 апр 17, 12:53    [20443388]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Vint
Member

Откуда: Таган-москва
Сообщений: 4456
israelshamir,
DBMS_OBFUSCATION_TOOLKIT.MD5(data, hash);
28 апр 17, 12:58    [20443421]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 45256

israelshamir
как сгенерировать гарантированно уникальное значение на основе содержимого 2
полей(varchar2(255) и number(содержит уникальные значения от 1 до 17))?

Никак, обломись.

Posted via ActualForum NNTP Server 1.5

28 апр 17, 13:02    [20443435]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Размышляющий...
Guest
А три этих значения уникальности сами по себе не дают? Если и не дают, то использование:

- разделителя между полями, как говорил AmKad
- + row_number()



..разве не дадут возможность сгенерировать уникальный ключ?
28 апр 17, 13:16    [20443492]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Размышляющий...
Guest
Размышляющий...
А три этих значения уникальности сами по себе не дают? Если и не дают, то использование:

- разделителя между полями, как говорил AmKad
- + row_number()
..разве не дадут возможность сгенерировать уникальный ключ?


ТС
мне требуется на выходе число в качестве уникального идентификатора


А. Глупость сморозил
28 апр 17, 13:19    [20443506]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
AmKad
Member

Откуда:
Сообщений: 4868
israelshamir
мне требуется на выходе число в качестве уникального идентификатора.
Sequence.
28 апр 17, 13:22    [20443522]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
XMLer
Member

Откуда:
Сообщений: 223
israelshamir
Добрый день.
Подскажите, пожалуйста, как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей(varchar2(255) и number(содержит уникальные значения от 1 до 17))?
ora_hash не использую дабы не получить в дальнейшем проблемы с дублями.

Ну раз размер числа ты не ограничиваешь и математику игнорируешь из-за боязни дублей то приведи строку посимвольно к его десятичному представлению.
28 апр 17, 13:23    [20443524]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Fogel
Member

Откуда:
Сообщений: 315
select listagg(quant, '') within group(order by n_s)
   from (select row_number() over(order by 1) as n_s,
                ascii(substr(rowid, level, 1)) as quant
           from dual
         connect by level <= length(rowid)) t
28 апр 17, 15:51    [20444220]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Vint
Member

Откуда: Таган-москва
Сообщений: 4456
Fogel,
select dump('Вырезанные через анус гланды') from dual
28 апр 17, 16:18    [20444394]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Fogel
Member

Откуда:
Сообщений: 315
Vint
Fogel,
select dump('Вырезанные через анус гланды') from dual

у dump'а количество знаков в числе существенно больше получится, чем в обработке rowid
28 апр 17, 16:35    [20444458]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
Понимаю в этом деле
Guest
Завести третью таблицу, с двумя этими полями в виде foreign key'ев и номером, который делать из sequence
28 апр 17, 16:56    [20444592]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
vasil12351
Guest
а вторая тогда какая?
28 апр 17, 19:16    [20444951]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
где мои семнадцать ...
Guest
israelshamir
и number(содержит уникальные значения от 1 до 17)
использовать второе поле
28 апр 17, 19:49    [20444989]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 47412
lpad(Field2, 17) || field1
28 апр 17, 20:04    [20445006]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
из полей доносится...
Guest
andreymx
lpad(Field2, 17) || field1
"от 1 до 17" это два знака в десятичной системе.
28 апр 17, 20:18    [20445041]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
andreymx
Member

Откуда: Запорожье
Сообщений: 47412
из полей доносится...,

тогда 2 вместо 17
28 апр 17, 20:22    [20445049]     Ответить | Цитировать Сообщить модератору
 Re: Как сгенерировать гарантированно уникальное значение на основе содержимого 2 полей?  [new]
israelshamir
Member

Откуда:
Сообщений: 181
Всем большое спасибо за ответы, мужики!
2 май 17, 13:13    [20449788]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить