千家信息网

Oracle 生成uuid,查询uuid

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,如果还没有创建表,那么使用下面的方式创建就可以了。create table testuu(id varchar2(2000) default sys_guid(),name varchar2(2000
千家信息网最后更新 2025年11月07日Oracle 生成uuid,查询uuid

如果还没有创建表,那么使用下面的方式创建就可以了。
create table testuu(
id varchar2(2000) default sys_guid(),
name varchar2(2000)) ;

如果已经创建了表,那么先保证你原有的主键ID没有任何实际的业务意义,要修改的话使用下面的方法。
alter table testuu modify id default sys_guid() ;
update testuu set id = sys_guid ();
Oracle新建系统表时,要求主键为32位uuid,猜测Oracle肯定会提供相关的函数。

翻阅相关文档,果然发现Oracle提供的函数 sys_guid() 用于获取32位uuid,简单使用为

select sys_guid() from dual;

该函数返回32位的uuid为大写,可以使用 lower(sys_guid()) 转为小写.

Oracle中生成跨系统的唯一识别符UUID非常方便,比生成序列还简单,直接用sys_guid()就行,

例如 select sys_guid() from dual 会产生一个跟MAC地址、生成时间相关的一个32位16进制的随机数。

数据类型是 raw(16) 有32个字符。

它的生成机制足以保证全球所有系统产生的海量guid重复可能性非常小。这在AIXM概念中非常重要。

根据时间拼接:
select lower(sys_guid())||to_char(sysdate,'yyyyMMddHh34miss') from dual;

如果要让返回的uuid满足标准格式,可利用如下函数实现:

CREATE OR REPLACE FUNCTION
get_uuid RETURN VARCHAR IS guid VARCHAR (50);
BEGIN guid := lower(RAWTOHEX(sys_guid()));
RETURN substr(guid,1,8)||'-'||substr(guid,9,4)||'-'||substr(guid,13,4)||'-'||substr(guid,17,4)||'-'||substr(guid,21,12);
END get_uuid ;

SQL> select get_uuid from dual ;

GET_UUID

a8f662b8-6e7a-13fe-e040-970a437c6bd7

函数 生成 系统 时间 面的 保证 重要 业务 全球 可能性 地址 大写 字符 实际 小写 序列 意义 数据 文档 方式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 全球云服务器腾讯 嘟拉安全教育网络安全 高频交易软件开发成本 镇江租房网络安全 主机屋域名和服务器怎么绑定 莱芜党员教育软件开发 武汉计算机网络技术招聘 中国股票交易市场数据库 软件开发说明书模板 ftp服务器管理接口开发 农商银行网络安全培训课后测试 福建公安厅网络安全专家 网络安全宣传社交陷阱 望城软件开发技工学校 初中学校网络安全领导小组 通讯网络安全检测中心 如何查看一个数据库有几个表 下拉框从数据库查值 为什么淘宝服务器便宜 ntp时间服务器地址 深圳市呼市网络技术有限公司 承德创巨网络技术服务可靠吗 网络安全检查考核 网络安全产品国产化率 关于数据库的特点的是什么 华为服务器管理口如何配ip 网络安全主题班会怎么说 乐清现代化刀片服务器售后服务 中学2021年网络安全总结 重庆涪陵免费生鲜软件开发
0