Oracle随机函数—dbms_random  

1.基础认识  

关于这些函数及DBMS_RANDOM包的文件都包含在SQLPlus中: select text   from all_source where name = 'DBMS_RANDOM'  

and type = 'PACKAGE' order by line;   

   ◆ TYPE      num_array    ◆ PROCEDURE terminate    ◆ PROCEDURE seed 

   ◆ PROCEDURE initialize    ◆ FUNCTION random 

   ◆ 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;    

2.应用举例  

SELECT DBMS_RANDOM.RANDOM FROM DUAL;   

再进一步的要求,比如,产生一个0-100的随机数,稍微变通一下就可以了:   

select abs(mod(dbms_random.random,100)) from dual  

3.进阶说明  

dbms_random又有新函数了可以实现这些功能  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;    

产生N到M之间的随机数  

SELECT   DBMS_RANDOM.VALUE(N,M) FROM DUAL;   

缺省DBMS_RANDOM.VALUE返回0到1之间的随机数   

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