开发小技巧——自动生成编码的几种常用方法

47 篇文章 0 订阅
28 篇文章 1 订阅
本文探讨了在开发中如何利用Oracle的SYS_GUID,SUBSTR函数以及DBMS_RANDOM.VALUE生成编码,如UUID和定制范围的随机数,以提高效率并确保一致性。
摘要由CSDN通过智能技术生成

在日常开发中会遇到一些需要编码的场景,除非有手动输入的需求,一般情况下更青睐于代码自动生成,代码可以按想要的方式进行生成,这里举几个简单例子

  • 在日常开发中会遇到一些需要编码的场景,除非有手动输入的需求,一般情况下更青睐于代码自动生成,代码可以按想要的方式进行生成,这里举几个简单例子

  • select SUBSTR( SYS_GUID( ) , 0 , 8 ) from dual;

    • SYS_GUID (),是Oracle 8i 后提供的函数。SYS_GUID产生并返回一个全球唯一的标识符(原始值)由16个字节组成,长度为32位的字符串,包括0-9和大写A-F。在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)。

    • substr()方法用于字符串的截取。

    • 两个参数用法:字符串.substr(参数1,参数2)

      • 参数1(可以是0、正整数、负数)

        • 如果是0或正整数,则代表字符串截取的起始下标

        • 如果是负数,则代表从倒数第几个字符开始截取

      • 参数2:

        • 字符串截取字符的个数(正整数)

        • 如果是0或负数,则会返回空字符串

  • 不做截取:

    截取8个字符:

  • select to_char(sysdate,'yyyymmddhhsssss') from dual;    按当前时间生成

        优点:确保单个编码生成不重复

        缺点:批量生成有可能因为时间间隔过短重复

dbms_random.value

生成一个指定范围的38位随机小数(小数点后38位),若不指定范围则默认为范围为[0,1)的随机数。

指定范围:select DBMS_RANDOM.VALUE(10,10000)  from dual;

不指定范围:select DBMS_RANDOM.VALUE()  from dual; -- 随机生成

本文介绍了如何使用Oracle函数实现编码自动生成。封装好的函数可以方便地生成编码,避免了手动生成UUID的麻烦,提高了数据处理效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值