溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle 生成uuid,查詢uuid

發布時間:2020-03-03 05:30:04 來源:網絡 閱讀:541 作者:wx5dcc1bb1ac912 欄目:關系型數據庫

如果還沒有創建表,那么使用下面的方式創建就可以了。
create table testuu(
id varchar2(2000) default sys_guid(),
name varchar2(2000)) ;

如果已經創建了表,那么先保證你原有的主鍵ID沒有任何實際的業務意義,要修改的話使用下面的方法。
alter table testuu modify id default sys_guid() ;
update testuu set id = sys_guid ();
Oracle新建系統表時,要求主鍵為32位uuid,猜測Oracle肯定會提供相關的函數。

翻閱相關文檔,果然發現Oracle提供的函數 sys_guid() 用于獲取32位uuid,簡單使用為

select sys_guid() from dual;

該函數返回32位的uuid為大寫,可以使用 lower(sys_guid()) 轉為小寫.

Oracle中生成跨系統的唯一識別符UUID非常方便,比生成序列還簡單,直接用sys_guid()就行,

例如 select sys_guid() from dual 會產生一個跟MAC地址、生成時間相關的一個32位16進制的隨機數。

數據類型是 raw(16) 有32個字符。

它的生成機制足以保證全球所有系統產生的海量guid重復可能性非常小。這在AIXM概念中非常重要。

根據時間拼接:
select lower(sys_guid())||to_char(sysdate,'yyyyMMddHh34miss') from dual;

如果要讓返回的uuid滿足標準格式,可利用如下函數實現:

CREATE OR REPLACE FUNCTION
get_uuid RETURN VARCHAR IS guid VARCHAR (50);
BEGIN guid := lower(RAWTOHEX(sys_guid()));
RETURN substr(guid,1,8)||'-'||substr(guid,9,4)||'-'||substr(guid,13,4)||'-'||substr(guid,17,4)||'-'||substr(guid,21,12);
END get_uuid ;

SQL> select get_uuid from dual ;

GET_UUID

a8f662b8-6e7a-13fe-e040-970a437c6bd7

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女