Действительно ли возможно автоматически сгенерировать GUID в оператор Insert?
Кроме того, какое поле я должен использовать для хранения этого GUID?
Вы можете использовать функцию 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
Непонятно, что вы имеете в виду под автоматическим созданием guid в операторе вставки, но предположительно, я думаю, вы пытаетесь сделать что-то вроде следующего:
INSERT INTO MY_TAB (ID, NAME) VALUES (SYS_GUID(), 'Adams');
INSERT INTO MY_TAB (ID, NAME) VALUES (SYS_GUID(), 'Baker');
В этом случае Я считаю, что столбец идентификаторов должен быть объявлен как RAW (16);
Я делаю это из головы. У меня нет экземпляра Oracle, который можно было бы протестировать, но я думаю, что это то, что вам нужно.