oracle生成uuid

select sys_guid() from dual;

-->78AE331ADB2B4CE7AB598B1317B39D58


但该函数如下问题:
     1.返回类型为RAW
     2.没有- (dash)分隔符
     3.返回的字母大写

为了使产生的uuid符合rfc 4122的标准
创建函数如下,测试通过。

create or replace function get_uuid return varchar2 is
  v_uuid varchar(36);
begin
  v_uuid := lower(rawtohex(sys_guid()));
  v_uuid := substr(v_uuid, 1, 8) || '-' || substr(v_uuid, 9, 4) || '-' ||
            substr(v_uuid, 13, 4) || '-' || substr(v_uuid, 17, 4) || '-' ||
            substr(v_uuid, 21, 12);
  return v_uuid;
end get_uuid;

select get_uuid() from dual ;
-->7bb0152a-4c5c-4078-a1b8-f57ae58254e5

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值