|
Как бы вы написали такую функцию?
|
|||
---|---|---|---|
#18+
Alibek B. legg таким же образом можно запоминать предыдущее время с текущим и если оно совпадает - добавлять постфикс-счетчик Новая папка - копия - копия - копия - копия - копия кого позвать? ) я опять не понял ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2021, 11:01 |
|
Как бы вы написали такую функцию?
|
|||
---|---|---|---|
#18+
Перефразирую — "совпасть с предыдущим" может не одна запись, а множество. Как должен выглядеть счетчик? select nvl(to_number(substr(pk,instr(pk,'-')+1)),0)+1 from t1 where substr(pk,1,instr(pk,'-')-1)=systimestamp ? Или sequence? Или самодельный sequence из таблицы и хранимой процедуры? Так может быть не делать костыли, а сразу сделать нормальный счетчик? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2021, 11:07 |
|
Как бы вы написали такую функцию?
|
|||
---|---|---|---|
#18+
Alibek B. Перефразирую — "совпасть с предыдущим" может не одна запись, а множество. Как должен выглядеть счетчик? select nvl(to_number(substr(pk,instr(pk,'-')+1)),0)+1 from t1 where substr(pk,1,instr(pk,'-')-1)=systimestamp ? Или sequence? Или самодельный sequence из таблицы и хранимой процедуры? Так может быть не делать костыли, а сразу сделать нормальный счетчик? сиквенс конечно же решает сразу все. я почему то принял как исходное ограничение -сиквенсы не использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2021, 11:32 |
|
Как бы вы написали такую функцию?
|
|||
---|---|---|---|
#18+
romaro Мне нужно генерировать случайную строку и на всякий случай проверять, нет ли уже такого значения в таблице. Реализовал при помощи потенциально бесконечного цикла, но может есть более изящный и безопасный вариант? В науке и технике это называется псевдо-случайное число. Если оно реализовано правильно - то проверок на уникальность делать не нужно. Но нужно где-то хранить предыдущее состояние этого генератора. Один из самых простых генераторов - линейный конгруэентный . Для его реализации нужны умножение на некий коэффициент и остаток от деления на некое целое число. Вопрос выбора этих чисел - за кадром. Зависит от того какой период псевдо-случайности тебе нужен. И есть еще другой подход. Берешь простой шифр. Например DES в режиме ECB. Берешь sequence. И шифруешь каждое его значение как открытый текст. На выходе будет вполне себе шумящая последовательность длинных blobs. Длину можно регулировать делая padding исходого текста. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2021, 14:49 |
|
|
start [/forum/topic.php?fid=52&msg=40064166&tid=1880270]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 297ms |
total: | 518ms |
0 / 0 |