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

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

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

  • 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或负数,则会返回空字符串

  • 不做截取:

    开发小技巧——自动生成编码的几种常用方法_第1张图片

    截取8个字符:

    开发小技巧——自动生成编码的几种常用方法_第2张图片

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

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

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

开发小技巧——自动生成编码的几种常用方法_第3张图片

开发小技巧——自动生成编码的几种常用方法_第4张图片

dbms_random.value

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

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

开发小技巧——自动生成编码的几种常用方法_第5张图片

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

开发小技巧——自动生成编码的几种常用方法_第6张图片

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

你可能感兴趣的:(oracle,PL/SQL,oracle,apex,oracle,sql)