在Oracle中使用Guid
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相关推荐
- oracle中的guid,在Oracle中使用Guid
在Oracle中使用Guid 在Oracle中使用Guid 在Oracle中可以用SYS_GUID()来生成一个guid,相当于msSql中的newid(). 在Oracle9i和Oracle 10g ...
- MYSQL 生成UUID() 即 ORACLE 中的guid()函数
MYSQL 生成UUID 即 guid 函数 -- 带 - 的UUID select UUID() -- 去掉 - 的UUID select replace(uuid(),'-','') 转载于:ht ...
- C#和Oracle中Guid类型数值互相转换
1.生成Guid类型并将其转换为RAW形式的存入数据库 static string DotNetToOracle(){Guid guid = Guid.NewGuid();// new Guid(); ...
- oracle默认表达式uuid,Oracle中生成uuid的方法
Oracle中生成uuid的方法 下载LOFTER客户端 在Oracle SQL 提供了一个生成uuid的函数sys_guid: http://download.oracle.com/docs/cd/ ...
- oracle clob 类型条件,Oracle中Clob类型如何处理?
Oracle中Clob类型处理解析最近利用NHibernate映射类型为Clob字段在插入数据时发现当字符的字节数(一个半角字符一个字节,一个全角字符两个字节)在 2000-4000之间时报错(ORA ...
- oracle 存取图片,用ASP.NET 2.0在Oracle中存取图片(文件)的操作
用ASP.NET 2.0在Oracle中存取图片(文件)的操作 2010-10-21文字大小:大中小 有时由于某种须要(如安全性)须将图片或文件存放在数据库中,当然通常情况下特别是文件比较大的时刻许多 ...
- oracle 存储过程 状态,查看ORACLE中正在运行的存储过程 | 学步园
1.如何查看ORACLE中正在运行的存储过程 select owner,name from v$db_object_cache where type like '%PROCE%' and locks ...
- oracle自增列问题i,关于oracle中自增列问题
昨天去面试,面试官文oracle中有没有自增列,平时没留意,今天查了一下资料,做了个例子. oracle中没有自增列,可以设定, 但手写方法.序列或触发器都可以实现,下面是我实现的一种方法 ----- ...
- C# 实现Oracle中的数据与Excel之间的转换
最近项目要求实现数据库之间数据在各个数据库之间导入导出,在此做个笔记 1. 将Oracle中的表导入到Excel中,反之亦然 private static readonly string connec ...
最新文章
- Python案例:使用XPath的爬虫
- 【pytorch】pytorch自定义训练vgg16和测试数据集 微调resnet18全连接层
- java 数据库转储_从源控制数据库驱动的应用程序所需的转储开始?
- 内存属于linux文件吗,linux下的/dev/shm是什么? 内存 文件系统
- 前端学习(2656):vue2中用v-model实现
- Visual Studio调试之断点基础篇
- 云上更安全?亚马逊云科技宣布将持续加大在中国区域安全合规领域投入
- 推荐一款Python编辑器,集Pycharm和Sublime优点于一身的王者
- mysql删除emp表的语句_MySQL删除数据表(DORP TABLE语句)
- Android接收短信
- Python编写人机对战小游戏(抓狐狸)(2)
- mysql设置远程访问的权限
- Hibernate 中 set 里的属性及定义
- 华硕计算机电源已连接未充电,笔记本电池显示“电源已接通,未充电”
- 谈谈我职业生涯中的三次潦倒 Leo病中的思考 续
- CSS 分析倒三角|侧三角|正三角的实现
- flexbox_Flexbox指南
- 一元多项式计算器 (c语言数据结构实验)
- MQTT Retained消息和 LWT
- Can only install one of: topthink/think-installer[v2.0.0, v1.0.12].
热门文章
- (49)FPGA状态机描述(二段式)
- (119)System Verilog 父类与子类对象复制(自定义函数)详解
- FPGA RAM存储器设计
- html 中avi视频插件,JDG让一追二击败V5!Kanavi降维打击,逆版本选英雄不按常理出牌...
- 12019.LMT84模拟温度传感器
- LWIP的UDP相关API
- vue 使用了浏览器的刷新之后报错_Electron-vue运行之后出现了文件浏览器
- c语言程序可以单独编译,c语言的函数能单独进行编译吗?
- 兴利调节matlab编程,水利计算之兴利调节计算.ppt
- jy61 树莓派_用Linux树莓派来读取JY61的串口数据