在日常开发中会遇到一些需要编码的场景,除非有手动输入的需求,一般情况下更青睐于代码自动生成,代码可以按想要的方式进行生成,这里举几个简单例子
-
在日常开发中会遇到一些需要编码的场景,除非有手动输入的需求,一般情况下更青睐于代码自动生成,代码可以按想要的方式进行生成,这里举几个简单例子
-
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的麻烦,提高了数据处理效率。