Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / очередной guid, для госзакупок / 16 сообщений из 16, страница 1 из 1
16.01.2015, 16:47
    #38856395
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
Господа.
Поиском пользовался, но не нашёл.
Хочу, то есть надо формировать 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
16.01.2015, 16:53
    #38856403
Anatoly B
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
roadster,

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

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

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

просто в качестве идеи
похоже на длинное число в 16-м формате (если не брать в расчет регистр букв)
то есть я бы посмотрел в сторону обычного SEQUENCE с преобразованием в 16-й формат (при выводе)
...
Рейтинг: 0 / 0
16.01.2015, 18:03
    #38856472
очередной guid, для госзакупок
Dimitry SibiryakovПотому что по стандарту
одинаковость визульного представления критичен только для разных систем, обменивающихся бинарными данными. если важна одинаковость, никто не мешает хранить строкой.
...
Рейтинг: 0 / 0
19.01.2015, 11:48
    #38857376
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
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
19.01.2015, 12:02
    #38857391
Anatoly B
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
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
19.01.2015, 12:05
    #38857399
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
Anatoly Bпри необходимости преобразования в 16ричный формат регистр все равно будет потерян (А = а)да я тоже так подумал, но привязка к сессиям не очень радует.
в принципе я пока только готовлюсь к проекту, вот узнаю и сравниваю что к чему.
этот вариант был первым, сохранил как пример, напишу пояснение. есть ещё варианты, например задействовать джаву или джаваскрипт (проект позволяет).
будем думать и смотреть.
спасибо за помощь.
...
Рейтинг: 0 / 0
19.01.2015, 13:07
    #38857461
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
roadsterпривязка к сессиям не очень радуетиспользован наипростейший способ обеспечения "уникальности". В чем, собственно, проблема? Ну а про регистр, какой должен быть регистр у четверки битов, решать тебе самому.
...
Рейтинг: 0 / 0
19.01.2015, 13:35
    #38857488
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
...
Рейтинг: 0 / 0
20.01.2015, 02:15
    #38857993
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
Может что подскажет В чем преимущество SYS_GUID ?
...
Рейтинг: 0 / 0
20.01.2015, 11:22
    #38858249
RA\/EN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
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
20.01.2015, 12:51
    #38858379
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
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
Период между сообщениями больше года.
24.03.2017, 16:23
    #39426648
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
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
24.03.2017, 16:45
    #39426661
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
очередной guid, для госзакупок
Fogelпокороче
Код: plsql
1.
'\1'||'-'||'\2'||'-'||'\3'||'-'||'\4'||'-'

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


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