Oracle的SYS_GUID()函数用法及说明

发布日期:2025-01-04 11:17    点击次数:197
前言 今天在代码中发现了Oracle的SYS_GUID() 函数作为主键的用法,于是来记录下~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、函数解释 SYS_GUID (),是Oracle 8i 后提供的函数。 SYS_GUID产生并返回一个全球唯一的标识符(原始值)由16个字节组成。 在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)。 二、查看方式 返回:长度为32位的字符串,包括0-9和大写A-F。 但是你会发现此时查出的是乱码,那该怎么办呢? 乱码就要使用rawtohex()函数方法啦~ 呐!现在就展示正常了。 三、使用场景 1.建表时作为主键 如下(示例): 2.新增数据时填充主键 如下(示例): 四、SYS_GUID作为主键的优缺点 1.优点 (1)序列从起点开始进行自增,但只能保持在单个实例里唯一。 因此不适合用作并行或远程环境的主键,因为各自环境里的序列可能会生成相同的数字,从而导致冲突的发生。 而SYS_GUID会保证它创建的标识符在每个数据库里都是唯一的。 (2)序列必须是DML陈述式的一部分,因此它需要一个到数据库的往返过程(否则它就不能保证其值是唯一的)。 SYS_GUID不需要对数据库进行访问的时间戳和机器标识符,这就节省了查询的消耗。 2.缺点 (1)从空间上,相同条件下,使用SYS_GUID做主键比用Sequence做主键,表多消耗了空间。 (2)用SYS_GUID使用时相对不太方便,必须(手动)输入或者通过脚本来填充相应的字段。 总结 总的来说,还是利大于弊啦~ hextoraw():十六进制字符串转换为raw;rawtohex():将raw串转换为十六进制;lower():将大写转为小写; 以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

 



    Powered by CryptoZoon中文网 @2013-2022 RSS地图 HTML地图

    Copyright Powered by365站群 © 2013-2024