Как генерировать GUID в Oracle?

Действительно ли возможно автоматически сгенерировать GUID в оператор Insert?

Кроме того, какое поле я должен использовать для хранения этого GUID?

81
задан Luke Girvin 6 December 2012 в 09:20
поделиться

2 ответа

Вы можете использовать функцию SYS_GUID () для генерации GUID в вашем операторе вставки:

insert into mytable (guid_col, data) values (sys_guid(), 'xxx');

Предпочтительный тип данных для хранения GUID - RAW (16).

В качестве ответа Гопинатха:

 select sys_guid() from dual
 union all
 select sys_guid() from dual
 union all 
 select sys_guid() from dual

Вы получите

88FDC68C75DDF955E040449808B55601
88FDC68C75DEF955E040449808B55601
88FDC68C75DFF955E040449808B55601

Как говорит Тони Эндрюс, отличается только одним символом

88FDC68C75D D F955E040449808B55601
88FDC68C75D E F955E040449808B55601
88FDC68C75D F F955E040449808B55601

Может быть полезно: http://feuergotits.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html

126
ответ дан 24 November 2019 в 09:34
поделиться

Непонятно, что вы имеете в виду под автоматическим созданием guid в операторе вставки, но предположительно, я думаю, вы пытаетесь сделать что-то вроде следующего:

INSERT INTO MY_TAB (ID, NAME) VALUES (SYS_GUID(), 'Adams');
INSERT INTO MY_TAB (ID, NAME) VALUES (SYS_GUID(), 'Baker');

В этом случае Я считаю, что столбец идентификаторов должен быть объявлен как RAW (16);

Я делаю это из головы. У меня нет экземпляра Oracle, который можно было бы протестировать, но я думаю, что это то, что вам нужно.

7
ответ дан 24 November 2019 в 09:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: