点击(此处)折叠或打开
- create or replace function F_GET_RANDOM
- (rnd_size in integer) return varchar2
- is
- v_result varchar2(500); --结果
- v_source varchar2(500); --生成随机码,字符源
- v_source_len integer;
- v_rnd integer;
- v_i integer;
- --函数用途:生成随机数
- --author:程晓鹏
- --date:2017.04.01
- begin
- v_source := '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- v_source_len := length(v_source);
- v_i := 0;
- v_result := '';
- while v_i < rnd_size loop
- --dbms_random.value函数,取值范围为min<=value<max;因此取值范围为(1,v_source_len+1),不然最后一位不能随机取到
- select to_number(trunc(dbms_random.value(1,v_source_len+1))) into v_rnd from dual; --获取随机数
- v_result := v_result || SUBSTR(v_source, v_rnd,1); --字符拼接
- v_i := v_i + 1;
- end loop;
- return v_result;
- end F_GET_RANDOM;