Oracle dbms_random 随机函数用法简单摘录

用法1:

返回一个具有38位精度的数值,范围从0.0到1.0,但不包括1.0:

select dbms_random.value from dual;

用法2:

生成下限到上限之间的数字,但不包含上限,依然返回38位精度的数值:

select dbms_random.value(1,100) from dual;

用法3:

验证38位精度:

select to_char(dbms_random.value(1,100),
                        '99.0000000000000000000000000000000000000000')
  from dual;

用法4:

按照一定规则,生成随机字符串:

opt:
‘u’, ‘U’ - 返回随机大写字母字符串;
‘l’, ‘L’ - 返回随机小写字母字符串;
‘a’, ‘A’ - 返回随机混合的大小写字母字符串;
‘x’, ‘X’ - 返回随机混合的大写字母和数字字符串;
‘p’, ‘P’ - 返回随机混合的特殊字符和大小写字母以及数字字符串。

len:返回的字符串长度。

select dbms_random.string('u',8) from dual;
select dbms_random.string('L',8) from dual;
select dbms_random.string('a',8) from dual;
select dbms_random.string('X',8) from dual;
select dbms_random.string('p',8) from dual;

用法5:

返回以二进制形式存储的正负整数数字,运算的效率高于number:

select dbms_random.random from dual connect by level <= 10;

用法6:

返回正态分布的一组数的随机数。此正态分布标准偏差为1,期望值为0,
返回的数值68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间:

select dbms_random.normal from dual connect by level <= 10;

用法7:

返回一组固定的随机数,用于测试:

BEGIN
  dbms_random.seed('test');
  FOR i IN 1 .. 5 LOOP
    dbms_output.put_line(dbms_random.value);
  END LOOP;
END;
/
-- 不同库上,不同用户或者不同会话,dbms_random.value 生成的随机数是一样的
-- 如果想生成不同的随机数,则要更换 dbms_random.seed('test') 的参数名字
-- 个人理解:oracle根据seed参数生成一组一样的随机数,在不同环境下保持一致。

[TOC]

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值