powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / очередной guid, для госзакупок
16 сообщений из 16, страница 1 из 1
очередной guid, для госзакупок
    #38856395
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа.
Поиском пользовался, но не нашёл.
Хочу, то есть надо формировать GUID согласно требованиям сайта госзакупок. SYS_GUID() не подходит, потому как надо вида
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ну или так, если кому понятнее
[a-fA-F0-9]{8}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{12}
что скажете?
что посоветуете?
писать самому или есть готовые решения?
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38856403
Anatoly B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadster,

А почему нельзя взять sys_guid и в нужные места добавить символ '-' ?
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38856410
roadster,

посегментная генерация посредством DBMS_RANDOM.STRING ???
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38856428
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly BА почему нельзя взять sys_guid и в нужные места добавить символ '-' ?

Потому что по стандарту преобразование 16 байт двоичного UUID в 36 символов текстового не
так прямолинейна и там есть подколки с порядком байт в результате.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38856463
varlamovvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadster,

просто в качестве идеи
похоже на длинное число в 16-м формате (если не брать в расчет регистр букв)
то есть я бы посмотрел в сторону обычного SEQUENCE с преобразованием в 16-й формат (при выводе)
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38856472
Dimitry SibiryakovПотому что по стандарту
одинаковость визульного представления критичен только для разных систем, обменивающихся бинарными данными. если важна одинаковость, никто не мешает хранить строкой.
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38857376
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly B,

нагенерил чуть-чуть
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
declare
giud_str varchar2(36) := '';
guid_sys_str varchar2(32);
begin
  for i in 1 ..100 loop
  guid_sys_str := sys_guid();
  giud_str := '';
  giud_str := giud_str||SUBSTR(guid_sys_str,1,8)||'-'||SUBSTR(guid_sys_str,9,4)||'-'||SUBSTR(guid_sys_str,13,4)||'-'||SUBSTR(guid_sys_str,17,4)||'-'||SUBSTR(guid_sys_str,21);
  dbms_output.put_line(guid_sys_str);
  dbms_output.put_line(giud_str);
  end loop;
end;


смущает несколько моментов:
1. меняется 11 и 12 разряды по возрастанию, видимо дальше будут изменения в 10 и более ранних разрядах.
2. используются только прописные буквы, а для верности хотелось бы и строчные использовать
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38857391
Anatoly B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadster,

http://docs.oracle.com/cd/B12037_01/server.101/b10759/functions153.htm On most platforms, the generated identifier consists of a host identifier, a process or thread identifier of the process or thread invoking the function, and a nonrepeating value (sequence of bytes) for that process or thread.
Ну вроде как все верно (Запуская скрипт в разных сессиях будет отличаться последними значениями + последовательность).
Не вижу необходимости разделять регистр букв - при необходимости преобразования в 16ричный формат регистр все равно будет потерян (А = а).
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38857399
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Bпри необходимости преобразования в 16ричный формат регистр все равно будет потерян (А = а)да я тоже так подумал, но привязка к сессиям не очень радует.
в принципе я пока только готовлюсь к проекту, вот узнаю и сравниваю что к чему.
этот вариант был первым, сохранил как пример, напишу пояснение. есть ещё варианты, например задействовать джаву или джаваскрипт (проект позволяет).
будем думать и смотреть.
спасибо за помощь.
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38857461
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterпривязка к сессиям не очень радуетиспользован наипростейший способ обеспечения "уникальности". В чем, собственно, проблема? Ну а про регистр, какой должен быть регистр у четверки битов, решать тебе самому.
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38857488
Vint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38857993
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может что подскажет В чем преимущество SYS_GUID ?
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38858249
Фотография RA\/EN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterГоспода.
Поиском пользовался, но не нашёл.
Хочу, то есть надо формировать GUID согласно требованиям сайта госзакупок. SYS_GUID() не подходит, потому как надо вида
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ну или так, если кому понятнее
[a-fA-F0-9]{8}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{12}
что скажете?
что посоветуете?
писать самому или есть готовые решения?
Посоветую требования внимательно прочитать или сюда скопировать.
Если написано "GUID" - то это стандартная вещь, разновидность UUID. Регексп от UUIDа, в GUIDе на какой-то позиции всегда "4".
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #38858379
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RA\/ENПосоветую требования внимательно прочитать или сюда скопировать.требования я скопировал основные.
хотите ещё?
пожалуйста:
Код: plsql
1.
2.
Код элемента|Содерж. элемента|Тип|Формат|Наименование|Дополнительная информация
header|guid|О|T(36)|Глобальный идентификатор информационного пакета|Уникальное значение. Формат: [a-fA-F0-9]{8}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{4}\-[a-fA-F0-9]{12}


есть ещё другие секции с требованием соответствия приведённому формату.
документ называется
"АЛЬБОМ ТФФ
Требования к форматам и способам передачи информации к форматам и способам передачи информации по телекоммуникационным каналам связи в рамках интеграции между смежной системой размещения сведений о закупках товаров, работ, услуг в соответствии с положениями Федерального закона от 18 июля 2011 года №223-ФЗ "О закупках товаров, работ, услуг отдельными видами юридических лиц" и внешними системами.
Версия: 1.8"
Если интересно, то на данный момент времени меня интересует план закупки, стр. 290-299 документа.
RA\/ENЕсли написано "GUID" - то это стандартная вещь, разновидность UUID. Регексп от UUIDа, в GUIDе на какой-то позиции всегда "4".спасибо за информацию.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
очередной guid, для госзакупок
    #39426648
Фотография Fogel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
roadsterнадо вида
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

ораклом давно не занимался, а тут понадобилось также с дефисами внешность оформить.
не нашёл лаконичности - везде громоздкие решения с пачкой substr (хотя может плохо искал или проблема слишком проста, чтобы быть критичной).
пришлось азы вспоминать.

вариант покороче пачки substr - в копилку для будущих искателей:
Код: plsql
1.
select regexp_replace(sys_guid(),'(.{8})(.{4})(.{4})(.{4})','\1'||'-'||'\2'||'-'||'\3'||'-'||'\4'||'-') from dual;
...
Рейтинг: 0 / 0
очередной guid, для госзакупок
    #39426661
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fogelпокороче
Код: plsql
1.
'\1'||'-'||'\2'||'-'||'\3'||'-'||'\4'||'-'

Ой ли?
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / очередной guid, для госзакупок
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]