当前所在位置:珠峰网资料 >> 计算机 >> Oracle认证 >> 正文
使用sys_guid产生随机数
发布时间:2010/11/13 14:10:36 来源:www.xue.net 编辑:城市总裁吧
  今天同事需要创建一个由36位的随机数字,中间用一些‘-’分割。没有什么好的方法,于是就问我。我也想了想,如何是最简洁最快速呢?好像oracle没有一个这样可以产生指定位数的纯数字的函数。   想到了sys_guid()函数,专门用来产生32位的随机数,不过中间包括一些大写的英文字母。于是就想使用这个函数加上translate函数来转译一些英文字母。   下面来看一下这个自定义的函数:CREATE OR REPLACE function fun_createrandom return varchar2 is

  Result varchar2(32);

  kk varchar2(64);

  begin

  select TRANSLATE(sys_guid(),'ABCDEFGHIJKLMNOPQUVWXYZRST','01234567890123456789012345') into Result from dual;

  select substr(result,1,8)||'-'||substr(result,9,4)||'-'||substr(result,13,4)||'-'||substr(result,17,4)||'-'||substr(result,20,12) into kk from dual;

  return(kk);

  end fun_createrandom;

  /

  SQL> select fun_createrandom from dual;

  FUN_CREATERANDOM

  --------------------------------------------------------------------------------

  03525205-5112-4224-9870-055638840111

  SQL> select fun_createrandom from dual;

  FUN_CREATERANDOM

  --------------------------------------------------------------------------------

  62235313-4235-4831-0357-751601449968

  SQL> select fun_createrandom from dual;

  FUN_CREATERANDOM

  --------------------------------------------------------------------------------

  72604958-5786-4943-9212-255000333009

  SQL> spool off;

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved