Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2545609
  • 博文数量: 308
  • 博客积分: 5547
  • 博客等级: 大校
  • 技术积分: 3782
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-24 09:47
个人简介

hello world.

文章分类

全部博文(308)

分类: Oracle

2017-04-03 09:31:25


点击(此处)折叠或打开

  1. create or replace function F_GET_RANDOM
  2. (rnd_size in integer) return varchar2
  3. is
  4.   v_result varchar2(500); --结果
  5.   v_source varchar2(500); --生成随机码,字符源
  6.   v_source_len integer;
  7.   v_rnd integer;
  8.   v_i integer;
  9.   --函数用途:生成随机数
  10.   --author:程晓鹏
  11.   --date:2017.04.01
  12. begin
  13.   v_source := '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  14.   v_source_len := length(v_source);
  15.   v_i := 0;
  16.   v_result := '';
  17.   while v_i < rnd_size loop
  18.        --dbms_random.value函数,取值范围为min<=value<max;因此取值范围为(1,v_source_len+1),不然最后一位不能随机取到
  19.        select to_number(trunc(dbms_random.value(1,v_source_len+1))) into v_rnd from dual; --获取随机数
  20.      v_result := v_result || SUBSTR(v_source, v_rnd,1); --字符拼接
  21.        v_i := v_i + 1;
  22.   end loop;
  23.   return v_result;
  24. end F_GET_RANDOM;


阅读(3672) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~