您的位置:首页 > 数据库 > Oracle

Oracle 生成Guid的方法

2017-09-13 00:00 399 查看


CREATE OR REPLACE FUNCTION GET_GUID
RETURN CHAR
IS
v_guid CHAR (36);
v_guid_part_one CHAR (8);
v_guid_part_two CHAR (4);
v_guid_part_three CHAR (4);
v_guid_part_four CHAR (4);
v_guid_part_five CHAR (12);
BEGIN
SELECT SYS_GUID ()
INTO v_guid
FROM DUAL;

v_guid_part_one := SUBSTR (v_guid, 0, 8);
v_guid_part_two := SUBSTR (v_guid, 8, 4);
v_guid_part_three := SUBSTR (v_guid, 12, 4);
v_guid_part_four := SUBSTR (v_guid, 16, 4);
v_guid_part_five := SUBSTR (v_guid, 20, 12);
v_guid :=
CONCAT
(CONCAT
(CONCAT
(CONCAT (CONCAT (CONCAT (CONCAT (CONCAT (v_guid_part_one,
'-'),
v_guid_part_two
),
'-'
),
v_guid_part_three
),
'-'
),
v_guid_part_four
),
'-'
),
v_guid_part_five
);
RETURN (v_guid);
END GET_GUID;
执行完上面的方法后会生成类似:4ECB06C6-6863-24DA-68D0-712170AF1964这样的GUID,通过如下语句调用:

select get_guid() from dual;

获取类似这样的GUID:97E68886635B4773BA49C0597BCF94A1

select SYS_GUID() from dual;

生成GUID的简单方法

select substr(sys_guid(), 1, 8) || '-' || substr(sys_guid(), 9, 4) || '-' ||
substr(sys_guid(), 13, 4) || '-' || substr(sys_guid(), 17, 4) || '-' ||
substr(sys_guid(), 20, 12)
FROM dual;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: