Oracle随机函数的正确取法的描述

数据库 Oracle
以下的文章主要介绍的是Oracle随机函数的正确取法,以及对通过dbms_random包调用的相关随机数的4方法的介绍,以下就是文章的具体内容描述。

假如你对Oracle随机函数的基本概念不是很了解的话,下面的文章就是对Oracle随机函数的相关内容的具体介绍,其实我个人认为Oracle随机函数的取法很简单,通过dbms_random包调用随机数的方法大致有4种:

1、dbms_random.normal

这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。

简单测试了一下,产生100000次***能到5左右:

 

  1. SQL> declare  
  2. 2 i number:=0;  
  3. 3 j number:=0;  
  4. 4 begin  
  5. 5 for k in 1 .. 100000 loop  
  6. i:dbms_random.normal;  
  7. 7 if i > j  
  8. 8 then j:=i;  
  9. 9 end if;  
  10. 10 end loop;  
  11. 11 dbms_output.put_line(j);  
  12. 12 end;  
  13. 13 /  
  14. 5.15325081797418404136433867107468983182  
  15. PL/SQL procedure successfully completed  

 

2、dbms_random.random

这个也没有参数,返回一个从-power(2,31)到power(2,31)的整数值

3、Oracle随机函数的取法:dbms_random.value

这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位小数

 

  1. SQL > column value format 9.99999999999999999999999999999999999999  
  2. SQL > select dbms_random.value from dual;  
  3. VALUE  
  4. .58983014999643548701631750396301271752  

 

第二种是加上两个参数a、b,则返回值在a、b之间的38位小数

 

  1. SQL > column value format 999.999999999999999999999999999999999999  
  2. SQL > select dbms_random.value(100,500) value from dual;  
  3. VALUE  
  4. 412.150194612502916808701157054098274240  

 

注意:无论前面几位,小数点之后都是38位

4、dbms_random.string

这个函数必须带有两个参数,前面的字符指定类型,后面的数值指定位数(***60)

类型说明:

 

  1. 'u','U' : upper case alpha characters only  
  2. 'l','L' : lower case alpha characters only'a','A' : alpha characters only (mixed case)  
  3. 'x','X' : any alpha-numeric characters (upper)  
  4. 'p','P' : any printable characters  
  5. SQL > column value format a30  
  6. SQL > select dbms_random.string('u',30) value from dual;  
  7. VALUE   

 

上述的相关内容就是对Oracle随机函数的取法的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. Oracle 10g的即时客户端与PHP的安装
  2. 安装Oracle 10g 在redhat linux 的正确方案
  3. Oracle数据库中的(+)连接如何操作?
  4. Oracle安全策略的实际用法
  5. Oracle存储过程中如何准确的实现分页
责任编辑:佚名 来源: 博客园
相关推荐

2010-04-26 15:30:45

Oracle join

2010-04-08 13:26:39

Oracle安装

2010-04-30 10:47:26

Oracle Nvl函

2010-04-30 17:58:55

Oracle trun

2010-04-12 12:55:24

Oracle 安装经验

2010-04-06 16:12:25

Oracle约束

2010-04-15 16:16:33

Oracle SQL

2010-04-27 15:59:26

Oracle to_c

2010-05-07 18:14:08

Oracle性能调整

2010-04-08 17:17:03

Oracle to_c

2010-05-28 19:25:11

MySQL移植问题

2010-04-28 17:59:19

Oracle表空间

2010-04-13 16:08:24

Oracle数据插入

2010-04-12 17:30:44

Oracle SQL调

2010-04-09 10:32:03

Oracle 数据库

2010-04-30 12:47:22

2010-05-04 10:39:28

Oracle MTS

2010-04-30 11:58:45

Oracle sequ

2010-10-26 13:17:28

oracle备份策略

2010-04-09 17:45:06

Oracle索引
点赞
收藏

51CTO技术栈公众号