如何在Oracle中生成一个GUID?

34 浏览
0 Comments

如何在Oracle中生成一个GUID?

是否有可能在插入语句中自动生成GUID?

另外,我应该使用什么类型的字段来存储这个GUID?

admin 更改状态以发布 2023年5月21日
0
0 Comments

您还可以将guid作为默认值包含在表的创建语句中,例如:

create table t_sysguid
( id     raw(16) default sys_guid() primary key
, filler varchar2(1000)
)
/

参见: http://rwijk.blogspot.com/2009/12/sysguid.html

0
0 Comments

您可以在插入语句中使用SYS_GUID()函数生成GUID:

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

存储GUID的首选数据类型是RAW(16)。

正如Gopinath的答案:

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

你会得到

88FDC68C75DDF955E040449808B55601
88FDC68C75DEF955E040449808B55601
88FDC68C75DFF955E040449808B55601

正如Tony Andrews所说,只有一个字符不同

88FDC68C75DDF955E040449808B55601
88FDC68C75DEF955E040449808B55601
88FDC68C75DFF955E040449808B55601

也许有用:http://feuerthoughts.blogspot.com/2006/02/watch-out-for-sequential-oracle-guids.html

0