来源:http://www.cnblogs.com/binary/archive/2005/04/01/130552.html
从oracle表中随机取记录,产生随机数和随机字符串
1、从表中随机取记录
select * from (select * from staff order by dbms_random . random )
where rownum < 4
表示从 STAFF 表中随机取 3 条记录
2、产生随机数
SELECT DBMS_RANDOM . RANDOM FROM DUAL ;
产生一个任意大小的随机数
SELECT ABS ( MOD ( DBMS_RANDOM . RANDOM , 100 )) FROM DUAL ;
产生一个 100 以内的随机数
SELECT TRUNC ( 100 + 900 * dbms_random . value ) FROM dual ;
产生一个 100 ~ 1000 之间的随机数
SELECT dbms_random . value FROM dual ;
产生一个 0 ~ 1 之间的随机数
SELECT dbms_random . value ( 10 , 20 ) FROM dual ;
产生一个 10 ~ 20 之间的随机数
SELECT dbms_random .normal FROM dual ;
NORMAL 函数返回服从正态分布的一组数。此正态分布标准偏差为 1 ,期望值为 0 。这个函数返回的数值中有 68% 是介于 -1 与 +1 之间, 95% 介于 -2 与 +2 之间, 99% 介于 -3 与 +3 之间。
3、产生随机字符串
SELECT dbms_random . string FROM dual ;
返回一个长度达 60 个字符的随机字符串。 (未试验成功)
select dbms_random . string ( 'P' , 20 ) from dual ;
第一个参数 P 表示 printable,即字符串由任意可打印字符构成
第二个参数表示返回字符串长度