通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 网络赚钱 | 网站地图 | 广告服务 | 服务
当前位置:首页>>编程开发>>sql专区>>正文 新版上线![旧版]
注:打开慢时请稍等
如何在oracle中用pl/sql产生随机数

http://www.iyit.net  日期:2006-5-3 19:19:06  来源:  点击:
参加讨论
在oracle提供的standard package中,并没有产生随机数的function或procedure.下面的例子是使用pl/sql些的一个随机数产生器。


create or replace package pk_rand

is

/*****************************************************************

* 这个package返回一个0-1之间的随机数,可以通过设置set_rang(low,upper)

*来重新指定返回那个范围的随机数。

*大家都知道,产生随机数需要‘种子’,可以通过set_seed这个procedure来设*置初始值******************************************************************/

  


procedure set_range(p_lower in number


,p_upper in number


,p_integer in varchar2 := ’y’);


procedure set_seed(p_seed in number);


procedure rand(p_result out number) ;


function f_rand


return number;


pragma restrict_references(f_rand,wnds);


end;


/


create or replace package body pk_rand


is


v_range_lower number := 0;


v_range_upper number := 1;


v_lastval number;


v_rand number;


v_result number;


v_integer boolean := false;


cursor c_seed is


select to_char(sysdate,’sssssdddhhsssss’)


from dual;


procedure set_seed(p_seed in number)


is


begin


v_lastval := p_seed;


end;


procedure set_range(p_lower in number,p_upper in number


,p_integer in varchar2 := ’y’)


is


begin


v_range_lower := p_lower;


v_range_upper := p_upper;


if p_integer = ’y’ then


v_integer := true;


else


v_integer := false;


end if;


end;


procedure rand(p_result out number)


is


begin


p_result := f_rand;


end;


function f_rand


return number is


/* fixed values used in generation */


a number := 25214903917;


c number := 11;


m number := power(2,48);


begin


/* compute next random number */


v_rand := ((a * v_lastval + c ) mod m );


/* store it as seed value in next calculation */


v_lastval := v_rand;


/* get output between 0 and 1 */


v_rand := v_rand / m;


/* multiply up to required range */


if v_integer then


/* increment the range by 1 to allow for truncation */


v_result := v_rand * ((v_range_upper +1) - v_range_lower ) +


v_range_lower;


v_result := trunc(v_result);


else


/* just multiply to expand the answer */


v_result := v_rand * (v_range_upper - v_range_lower ) + v_range_lower;


end if;


return v_result;


end;


/* and now the initialisation code */


begin


open c_seed;


fetch c_seed


into v_lastval;


close c_seed;


end;


/



编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:oracle数据库系统使用经验六则
下一篇:优化-数据库
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
第十七章 sql编程(二) 第十七章 sql编程(一) windows2000下安装apache php4 mysql  
windows 2000下安装php4及mysql大揭密  win2000 + php + mysql + tomcat + jsp 超级服务器apache+mysql+php+ssl之完全
超级服务器apache+mysql+php+ssl之完全 linux下快速安装“apache+php3+mysql” 如何集成linux、apache、php4、fastcgi
接触 solaris : 安装 apache + php + m linux服务器配置方案mysql(上) sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联 microsoft sql server 7.0安全问题     mysql安全性指南(3)(转)            
mysql安全性指南 (2)(转)            mysql安全性指南 (1)(转)            怎样才能限制sql server只能让指定的机
远程检测ms sql server账号安全性      模拟sql server的两个日期处理函数     用dbsql类加快开发mysql数据库程序的速
将access数据库移植到microsoft sql se microsoft sql server 7.0数据库设置与 microsoft sql server 7.0数据库升级转
最新更新 热点排行 推荐新闻
sql server 7.0与以前的版本相比,安全
设置proxy server和sql server实现互联
microsoft sql server 7.0安全问题   
mysql安全性指南(3)(转)           
mysql安全性指南 (2)(转)          
在frontpage 2000中插入flash动画
用frontpage 2000使图像“减肥”
提高frontpage 2002使用效率
用frontpage 2000创建网页动画
用frontpage 2000巧做样式表
用frontpage 2000制作鼠标光照特效
用frontpage轻松转换图片格式
frontpage10全透视教程(9)
frontpage10全透视教程(8)
frontpage10全透视教程(7)
sql server 7.0与以前的版本相比,安全
sql简明教程(6)
sql简明教程(5)
sql简明教程(4)
sql简明教程(3)
qq珊瑚虫外挂4.0版本发布!
多个广告位招商!
摄影后期系列一:1分钟为数码相片去红眼
qq挂机说明
asp进度条
photoshop通道抠图:给秀发飞扬的mm照
教您显示器亮度对比度的调节
新版上线,今日正式开通!!!
更多精彩图文广告等着您!
asp中使用sql语句教程
sql简明教程(1)
第二十章 开发delphi对象式数据管理功
sql简明教程(1)
vbscript和javascript互相调用 
jsp教程(四)-jsp actions的使用
操作系统被入侵后的修复过程
五一别忘电脑防毒 养成良好上网习惯
google对ie浏览器将捆绑搜索功能表担忧
新版上线,今日正式开通!!!
用photoshop创意图形“岁月”
摄影后期系列一:1分钟为数码相片去红眼

 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息