串利用Oracle构建随机字符串的方法(oracle生成随机字符)

在使用Oracle时,我们经常会遇到生成随机字符串的需求,可以根据Oracle构建随机字符串。

首先要明确,熟悉数据库的同学都知道,一般不会在数据库中开发产生随机字符串的功能,这是违反最佳实践的。建议此类需求,一般把算法移植到应用来完成,这样就会大大加快响应速度和减少数据库的负担等等。

但也不是无解,只要我们实现了,Oracle构建随机字符串也不是难事。下面我来介绍下Oracle构建随机字符串的实现方法:

1. 利用DBMS_RANDOM库函数生成随机数:

(1)直接使用现成库函数,如:

SELECT DBMS_RANDOM.STRING(‘X’ ,15)as 随机字串FROM dual;

(2)也可以自定义函数实现随机字符串:

CREATE OR REPLACE FUNCTION fs_randomstring(P_LENGTH NUMBER,P_CHARSET VARCHAR2 )RETURN VARCHAR2 AS BEGIN RETURN(SELECT REGEXP_SUBSTR(SYS_CONNECT_BY_PATH(CHR(ROUND(DBMS_RANDOM.VALUE(0,25)+65)), ”), ‘[^,]’, 1 , LEVEL)as 串 FROM DUAL CONNECT BY LEVEL

实例:

selectfs_randomstring(20 ,”)as 随机字符串from dual;

2. 利用XML函数生成随机字串:

SELECT REGEXP_SUBSTR(XMLQUERY(‘transformcopy $i/text()=>ks:random()modesting-chars(26)return dbms_lob.substr($i,1,1)’ passing DBMS_RANDOM.STRING(‘A’, 15 )returning content),'[A-Z]’ , 1, LEVEL)as 随机字符串 FROM DUAL CONNECT BY LEVEL

注:提示信息可以进行调整,具体实现需要根据实际需求。

以上就是利用Oracle构建随机字符串的方法,希望能够给大家提供帮助。由于不推荐将其放在数据库层面,所以还是尽量的将生成的随机数据用在开发层面,减少对数据库的压力。


数据运维技术 » 串利用Oracle构建随机字符串的方法(oracle生成随机字符)