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

发布时间:2024年01月15日

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

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

  • 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的麻烦,提高了数据处理效率。

文章来源:https://blog.csdn.net/clover_oreo/article/details/135609457
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。