Oracle裡面用RAW(16)儲存SYS_GUID()的結果,不過位元組順序(byte order)和標準的GUID不同。如下
標準GUID: 265B113F-0E9D-F44D-A9D4-18BC4D3E836C
RAW(16) : 3F115B26 9D0E 4DF4 A9D4 18BC4D3E836C (實際沒有空格,這裡是為了顯示方便)
為了方便查看,可以用Regex進行簡單的轉換。
| 代碼如下 |
複製代碼 |
create table t(x raw(16)); insert into t(x) select sys_guid() from dual connect by rownum <=5; commit; select x, regexp_replace(x, '(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{4})', '4321-65-87-9-') as fmt_x from t; X FMT_X -------------------------------- -------------------------------------------------------------------------------- B5D8E10BB3BCC595E040007F01000F49 0BE1D8B5-BCB3-95C5-E040-007F01000F49 B5D8E10BB3BDC595E040007F01000F49 0BE1D8B5-BDB3-95C5-E040-007F01000F49 B5D8E10BB3BEC595E040007F01000F49 0BE1D8B5-BEB3-95C5-E040-007F01000F49 B5D8E10BB3BFC595E040007F01000F49 0BE1D8B5-BFB3-95C5-E040-007F01000F49 B5D8E10BB3C0C595E040007F01000F49 0BE1D8B5-C0B3-95C5-E040-007F01000F49 |