博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在Oracle中使用Guid
阅读量:5966 次
发布时间:2019-06-19

本文共 1324 字,大约阅读时间需要 4 分钟。

sys_guid()  -  唯一索引

在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid()。

在Oracle9i和Oracle 10g 里SYS_GUID产生得到的数据是32 位的,如:234E45F0077881AAE0430AA3034681AA

但Oracle中的guid与msSql中的guid格式不完全相同。

将Oracle中的guid分割成为 Windows系统 ObjectId 的格式:{8-4-4-4-12} ,下面给出两种解决方法: 

方法一:利用substr进行分割,非常简单,具体代码如下: 
/** 
* 创建系统Object Id 格式的字符串,返回的结果如下:{234E45F0-077A-81AA-E043-0AA3034681AA} 
*/ 
function CreateGUID return varchar2 
is 
guid varchar(64); 
begin 
guid := SYS_GUID(); 
return 
'{'||substr(guid,1,8)||'-'||substr(guid,9,4)|| 
'-'||substr(guid,13,4)||'-'||substr(guid,17,4) 
||'-'||substr(guid,21,12)||'}'; 
end CreateGUID; 
方法二:利用CONCAT函数进行连接,具体代码如下: 
CREATE OR REPLACE FUNCTION AILDM_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 AILDM_GET_GUID;

转载地址:http://ulvax.baihongyu.com/

你可能感兴趣的文章
通达信里的统计函数及区块背景函数
查看>>
redis主从配置<转>
查看>>
[转]NopCommerce 多数据库方案
查看>>
和transformjs一起摇摆
查看>>
8 行 Node.js 代码实现代理服务器
查看>>
水印,图片验证码
查看>>
Ansible8:Playbook循环【转】
查看>>
关于stm32的正交解码
查看>>
marathon新建应用映射端口限制
查看>>
vs2015 编译时错误列表中没有错误,dll却没有生成出来
查看>>
[转]How to override HandleUnauthorizedRequest in ASP.NET Core
查看>>
C# list介绍
查看>>
概率霍夫变换(Progressive Probabilistic Hough Transform)原理详解
查看>>
Mac下快速新建txt文件
查看>>
谷歌浏览器chrome设置特定网页使用Https(ssl)访问
查看>>
[NPM] Use a shorthand syntax for running multiple npm scripts with npm-run-all
查看>>
MySQL中函数CONCAT及GROUP_CONCAT
查看>>
java中写sql语句的小小细节
查看>>
Android中BitmapFactory.Options详解
查看>>
跟着百度学PHP[13]-文件上传
查看>>