Oracle之DBMS_RANDOM包详解

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

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

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

分享:
  6. TERMINATE
  在使用完DBMS_RANDOM包后,用该函数进行终止。该函数在11gR1中即不推荐使用了。
  语法:
  DBMS_RANDOM.TERMINATE;
  举例:
  SQL> exec DBMS_RANDOM.TERMINATE;
  PL/SQL procedure successfully completed.
  7. VALUE
  语法:
  DBMS_RANDOM.VALUE
  RETURN NUMBER;
  DBMS_RANDOM.VALUE(
  low IN NUMBER,
  high IN NUMBER)
  RETURN NUMBER;
  对于第一种用法,返回的值的范围为大于或等于0,小于1,带有38位精度的小数。
  对于第二种用法,可指定最小值和最大值,返回值的范围为大于或等于low,小于high。
  举例:
  SQL> select dbms_random.value from dual;
  VALUE
  ----------
  .291782963
  SQL> select dbms_random.value(10,20) from dual;
  DBMS_RANDOM.VALUE(10,20)
  ------------------------
  12.4079412
  总结:
  关于VALUE函数返回38位精度的小数,可通过以下方式验证。
SQL> select dbms_random.value from dual;
VALUE
----------
.511020102
SQL> col value for 999999.9999999999999999999999999999999999999999999999999
SQL> select dbms_random.value from dual;
VALUE
---------------------------------------------------------
.1590863051775181450023750363985770254400000000000
SQL> /
VALUE
---------------------------------------------------------
.5831363280913832608492096535119024112700000000000
  故意将value列的格式设置为999999.9999999999999999999999999999999999999999999999999,当然不限,只要小数位数超过38位即可,在本例中,为49位,通过dbms_random.value随机返回数值,不难发现,最后生成的数值虽然是49位,但最后11位均是0,换句话说,有效数值只有38位。
33/3<123
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号