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;

在Oracle中使用Guid的更多相关文章

  1. mysql 生成UUID() 即 ORACLE 中的guid()函数

    MYSQL 生成UUID 即 guid 函数-- 带 - 的UUIDselect UUID() -- 去掉 - 的UUIDselect replace(uuid(),'-','') 一个表的数据插入另 ...

  2. Guid和Oracle中16进制字符的转换

    我们知道在Oracle中存的guid是16进制字符串,而在我们的C#代码中存的是guid对象,这样我会就要进行转换, 下面给出了两者进行转换的方法: public class Guid2RawProc ...

  3. 在Oracle中使用Entity Framework 6 CodeFirst

    项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...

  4. Oracle中Clob类型处理解析:ORA-01461:仅可以插入LONG列的LONG值赋值

    感谢原作者:破剑冰-Oracle中Clob类型处理解析 上一篇分析:ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值 最近为Clob字段在插入数据时发现当字符的字节数(一个半角字符一 ...

  5. Oracle中生成uuid的方法

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

  6. 问题:oracle CLOB类型;结果:oracle中Blob和Clob类型的区别

    BLOB和CLOB都是大字段类型,BLOB是按二进制来存储的,而CLOB是可以直接存储文字的.其实两个是可以互换的的,或者可以直接用LOB字段代替这两个.但是为了更好的管理ORACLE数据库,通常像图 ...

  7. Oracle中生成UUID

    Oracle中生成跨系统的唯一识别符UUID非常方便,比生成序列还简单,直接用sys_guid()就行, 例如select sys_guid() from dual 会产生一个跟MAC地址.生成时间相 ...

  8. 基于SqlSugar的开发框架循序渐进介绍(4)-- 在数据访问基类中对GUID主键进行自动赋值处理

    我们在设计数据库表的时候,往往为了方便,主键ID一般采用字符串类型或者GUID类型,这样对于数据库表记录的迁移非常方便,而且有时候可以在处理关联记录的时候,提前对应的ID值.但有时候进行数据记录插入的 ...

  9. Oracle中varchar,varchar2,nvarchar,nvarchar2的区别及其它数据类型描述

    --varchar,varchar2 联系: 1.varchar/varchar2用于存储可变长度的字符串 比如varchar(20),存入字符串'abc',则数据库中该字段只占3个字节,而不是20个 ...

随机推荐

  1. openssl签署和自签署证书的多种实现方式

    openssl系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.采用自定义配置文件的实现方法 1.1 自建CA 自建CA的机制:1.生成 ...

  2. css布局------左右宽度固定,中间宽度自适应容器

    HTML /*适用方法1,方法2*/<body> <div class="container"> <div class="left" ...

  3. 模拟HTTP协议接收请求并返回信息

    private string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)W ...

  4. WebFrom 小程序【条件查询与分页整合】

    将前面的条件查询功能与分页显示整合到一个页面中 <%@ Page Language="C#" AutoEventWireup="true" CodeFil ...

  5. 单机安装Hadoop

    单机安装hadoop ------------------------------------------------------------------ 操作系统:centos7 64 位 hado ...

  6. a标签禁止跳转或者不跳转的几种实现方式

    1.onclick事件中返回false <a href="http://www.baidu.com"  onclick="return false" &g ...

  7. 前端面试题整理——javaScript部分

    (1)typeof 和 instanceof 1.typeof 对于基本数据类型(boolean.null.undefined.number.string.symbol)来说,除了 null 都可以显 ...

  8. svg简介与使用

    什么是svg SVG是"Scalable Vector Graphics"的简称.中文可以理解成"可缩放矢量图形". 可缩放矢量图形是基于可扩展标记语言(标准通 ...

  9. 基于Grafana的监控数据钻取功能应用实践

    互联网企业中,随着机器规模以及业务量的爆发式增长,监控数据逐渐成为一种大数据,对监控大数据的分析,包括数据采集.数据缓存.数据聚合分析.数据存储.数据展现等几个阶段.不同阶段有不同的解决方案及支撑工具 ...

  10. 《Inside C#》笔记(十五) 非托管代码 下

    二编写不安全代码 a)fixed关键字 代码中体现了fixed的用法:fixed (type* ptr= expression) { …}:type是类似int*这样的非托管类型或void类型,exp ...