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