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;

转载于:https://www.cnblogs.com/telwanggs/p/4701792.html

在Oracle中使用Guid相关推荐

  1. oracle中的guid,在Oracle中使用Guid

    在Oracle中使用Guid 在Oracle中使用Guid 在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid(). 在Oracle9i和Oracle 10g ...

  2. MYSQL 生成UUID() 即 ORACLE 中的guid()函数

    MYSQL 生成UUID 即 guid 函数 -- 带 - 的UUID select UUID() -- 去掉 - 的UUID select replace(uuid(),'-','') 转载于:ht ...

  3. C#和Oracle中Guid类型数值互相转换

    1.生成Guid类型并将其转换为RAW形式的存入数据库 static string DotNetToOracle(){Guid guid = Guid.NewGuid();// new Guid(); ...

  4. oracle默认表达式uuid,Oracle中生成uuid的方法

    Oracle中生成uuid的方法 下载LOFTER客户端 在Oracle SQL 提供了一个生成uuid的函数sys_guid: http://download.oracle.com/docs/cd/ ...

  5. oracle clob 类型条件,Oracle中Clob类型如何处理?

    Oracle中Clob类型处理解析最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在 2000-4000之间时报错(ORA ...

  6. oracle 存取图片,用ASP.NET 2.0在Oracle中存取图片(文件)的操作

    用ASP.NET 2.0在Oracle中存取图片(文件)的操作 2010-10-21文字大小:大中小 有时由于某种须要(如安全性)须将图片或文件存放在数据库中,当然通常情况下特别是文件比较大的时刻许多 ...

  7. oracle 存储过程 状态,查看ORACLE中正在运行的存储过程 | 学步园

    1.如何查看ORACLE中正在运行的存储过程 select owner,name from v$db_object_cache where type like '%PROCE%' and locks ...

  8. oracle自增列问题i,关于oracle中自增列问题

    昨天去面试,面试官文oracle中有没有自增列,平时没留意,今天查了一下资料,做了个例子. oracle中没有自增列,可以设定, 但手写方法.序列或触发器都可以实现,下面是我实现的一种方法 ----- ...

  9. C# 实现Oracle中的数据与Excel之间的转换

    最近项目要求实现数据库之间数据在各个数据库之间导入导出,在此做个笔记 1. 将Oracle中的表导入到Excel中,反之亦然 private static readonly string connec ...

最新文章

  1. Python案例:使用XPath的爬虫
  2. 【pytorch】pytorch自定义训练vgg16和测试数据集 微调resnet18全连接层
  3. java 数据库转储_从源控制数据库驱动的应用程序所需的转储开始?
  4. 内存属于linux文件吗,linux下的/dev/shm是什么? 内存 文件系统
  5. 前端学习(2656):vue2中用v-model实现
  6. Visual Studio调试之断点基础篇
  7. 云上更安全?亚马逊云科技宣布将持续加大在中国区域安全合规领域投入
  8. 推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者
  9. mysql删除emp表的语句_MySQL删除数据表(DORP TABLE语句)
  10. Android接收短信
  11. Python编写人机对战小游戏(抓狐狸)(2)
  12. mysql设置远程访问的权限
  13. Hibernate 中 set 里的属性及定义
  14. 华硕计算机电源已连接未充电,笔记本电池显示“电源已接通,未充电”
  15. 谈谈我职业生涯中的三次潦倒 Leo病中的思考 续
  16. CSS 分析倒三角|侧三角|正三角的实现
  17. flexbox_Flexbox指南
  18. 一元多项式计算器 (c语言数据结构实验)
  19. MQTT Retained消息和 LWT
  20. Can only install one of: topthink/think-installer[v2.0.0, v1.0.12].

热门文章

  1. (49)FPGA状态机描述(二段式)
  2. (119)System Verilog 父类与子类对象复制(自定义函数)详解
  3. FPGA RAM存储器设计
  4. html 中avi视频插件,JDG让一追二击败V5!Kanavi降维打击,逆版本选英雄不按常理出牌...
  5. 12019.LMT84模拟温度传感器
  6. LWIP的UDP相关API
  7. vue 使用了浏览器的刷新之后报错_Electron-vue运行之后出现了文件浏览器
  8. c语言程序可以单独编译,c语言的函数能单独进行编译吗?
  9. 兴利调节matlab编程,水利计算之兴利调节计算.ppt
  10. jy61 树莓派_用Linux树莓派来读取JY61的串口数据