CharlieShen

新人,大家多关照啦@_@

  博客中心 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 登录 ::
  3994 随笔 :: 0 文章 :: 20 评论 :: 0 Trackbacks
Cached @ 2025/4/28 21:27:53Control ASP.skins_cogitation_controls_blogstats_ascx
<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

留言簿(14)

随笔档案

文章档案

搜索

最新评论

阅读排行榜

评论排行榜

Cached @ 2025/4/28 21:27:53Control ASP.skins_cogitation_controls_singlecolumn_ascx

三问:DBMS_RANDOM

您能否告诉我写一个能产生大于0小于1的随机数的随机数产生器的最好方法?

答:Oracle8 8.0版介绍了DBMS_RANDOM包,Oracle8i 8.1.6版介绍了DBMS_RANDOM包的新功能,但Oracle8i 文档中没有详细全面介绍其功能。幸运的是:有一个新的DBMS_RANDOM包函数能够返回0-1之间的随机数。这个新函数是:

FUNCTION value RETURN NUMBER;
  FUNCTION value (low IN NUMBER, high IN
  NUMBER) RETURN NUMBER;
  FUNCTION normal RETURN NUMBER;
  FUNCTION string (opt char, len NUMBER)
  RETURN VARCHAR2;


VALUE函数的第一种形式返回一个大于或等于0且小于1的随机数;第二种形式返回一个大于或等于LOW,小于HIGH的随机数。下面是其用法的一个示例:

SQL> select dbms_random.value,
  dbms_random.value(55,100)
  2 from dual;
  VALUE DBMS_RANDOM.VALUE(55,100)
  --------------- -----------------------------
  .782821936 79.6367038

NORMAL函数返回服从正态分布的一组数。此正态分布标准偏差为1,期望值为0。这个函数返回的数值中有68%是介于-1与+1之间,95%介于-2与+2之间,99%介于-3与+3之间。事实上,这就是你在清单1中所看到的。

最后,是STRING函数。它返回一个长度达60个字符的随机字符串。参数OPT可以是清单2显示的值中的任何一个单个字符。

关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中:

select text
  from all_source
  where name = 'DBMS_RANDOM'
  and type = 'PACKAGE' order by line;

分享按钮发布于: 2007-09-23 10:39 CharlieShen 阅读(126) 评论(0)  编辑 收藏