Oracle中生成uuid的方法


Oracle中生成uuid的方法


  下載LOFTER客戶端 
在Oracle SQL 提供了一個生成uuid的函數sys_guid:
http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/functions187.htm#i79194
http://en.wikipedia.org/wiki/Universally_unique_identifier


SQL> select sys_guid() from dual ;
SYS_GUID()
--------------------------------
A8F662B86E7413FEE040970A437C6BD7


但該函數如下問題:
     1.返回類型為RAW
     2.沒有- (dash)分隔符
     3.返回的字母大寫


為了使產生的uuid符合rfc 4122的標准(http://tools.ietf.org/html/rfc4122)
創建函數如下,測試通過。


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


SQL> /


GET_UUID
--------------------------------------------------------------------------------
a8f662b8-6e7b-13fe-e040-970a437c6bd7


SQL> /


GET_UUID
--------------------------------------------------------------------------------
a8f662b8-6e7c-13fe-e040-970a437c6bd7

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM