Oracle之DBMS_RANDOM包详解

发表于:2015-5-06 09:49

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:iVictor    来源:51Testing软件测试网采编

  DBMS_RANDOM是Oracle提供的一个PL/SQL包,用于生成随机数据和字符。它具有以下函数。
  其中,initialize,random,terminate函数在Oracle11g中已不推荐使用,主要用于向后兼容。下面对各个函数进行举例说明
  1. INITIALIZE
  用一个种子值来初始化DBMS_RANDOM包。
  默认情况下,DBMS_RANDOM包是根据用户、时间、会话来进行初始化,这样,即便是同一个语句,每次生成的数值都会不一样,但这样会产生一个问题,在测试环境下,如果我想每次生成的随机序列都是一样的,该怎么办?INITIALIZE函数就很好的解决了这一问题,通过设置相同的种子值,则每次生成的随机序列都将是一样的。
  语法:
  DBMS_RANDOM.INITIALIZE (
  val IN BINARY_INTEGER);
  举例:
SQL>BEGIN
2dbms_random.initialize(100);
3FORiIN1..10LOOP
4dbms_output.put_line(dbms_random.random);
5ENDLOOP;
6END;
7/
163284779
751599369
659804475
1131809137
-865013504
-407075626
2128226600
-448154892
-1371178596
472933400
PL/SQLproceduresuccessfullycompleted.
  即便是在不同的会话中,不同的用户下,随机生成的10个值都是一样的。
  2. NORMAL
  NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。
  语法:
  DBMS_RANDOM.NORMAL
  RETURN NUMBER;
  举例:
  SQL> select dbms_random.normal from dual;
  NORMAL
  ----------
  .321082788
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号