如下模擬上的一個小例子
INSERT INTO TARGET_TABLE
select
rawtohex(sys_guid()) uuid
from dual connect by level <= 3
;
唯一(光)的問題是,如從Java UUID預期生成的字符串沒有被格式化的SYS_GUID
的使用是對於批量插入非常有效。
UID
--------------------------------
BBEDBA2A9BB44952AA5EE311D0880C39
B95CA374AC7C4619A68543771101D590
6B4E89CF0307427BBD047E42BD6DFBB0
一個簡單的子查詢和一些substr
s的串聯帶來的補救措施 - 見here:
with t as (
select rawtohex(sys_guid()) guid from dual
connect by level <= 3
)
select guid, lower(substr(guid, 1, 8)
||'-'|| substr(guid, 9, 4)
||'-'|| substr(guid, 13, 4)
||'-'|| substr(guid, 17, 4)
||'-'|| substr(guid, 21, 12)) as formatted_guid
from t;
GUID FORMATTED_GUID
-------------------------------- ------------------------------------
993712381A8543FB9320C587D078330E 99371238-1a85-43fb-9320-c587d078330e
FFF3CF7104E048BF8E6677B080BD35A6 fff3cf71-04e0-48bf-8e66-77b080bd35a6
1FBCC67EA46B4474B26128F2DDAA519B 1fbcc67e-a46b-4474-b261-28f2ddaa519b
使用SYS_GUID https://docs.oracle.com/cd/B12037_01/server.101/ b10759/functions153.htm。 – ibre5041