Oracle随机数:

1、使用SYS_GUID(),获取32位的UUID.

1 SELECT SYS_GUID() FROM DUAL

2、当要将某数据插入到A表中,但是在B表中也要使用插入数据的ID,就可以提前声明一个变量,存放它的ID,而不需要通过

INSERT语句中使用RETURNING语句返回ID。

1 DECLARE
2   V_ID VARCHAR2(100) := SYS_GUID();
3 BEGIN
4   DBMS_OUTPUT.PUT_LINE(V_ID);
5 END;

3、其他使用的随机数是使用SYS.dbms_random包中提供的函数和过程:

 1 --Obsolete(过时), get integer in ( -power(2,31) <= random < power(2,31) )
 2 SELECT DBMS_RANDOM.RANDOM FROM DUAL;
 3 --Get a random 38-digit precision number, 0.0 <= value < 1.0
 4 SELECT DBMS_RANDOM.VALUE FROM DUAL;
 5 --get a random Oracle number x, low <= x < high
 6 SELECT DBMS_RANDOM.VALUE(1, 100) FROM DUAL;
 7 /* "opt" specifies that the returned string may contain:
 8              'u','U'  :  upper case alpha characters only
 9              'l','L'  :  lower case alpha characters only
10              'a','A'  :  alpha characters only (mixed case)
11              'x','X'  :  any alpha-numeric characters (upper)
12              'p','P'  :  any printable characters
13   */
14 SELECT DBMS_RANDOM.STRING('u', 100) FROM DUAL;
15 SELECT DBMS_RANDOM.STRING('x', 100) FROM DUAL;
16 --随机获取0-40范围内的数
17 SELECT ROUND((DBMS_RANDOM.VALUE) / 25 * 1000, 0) FROM DUAL;

4、SIMPLE的用法:

1 /*sample 就是读全部,不加一样sample(n),n为[0.000001,100)当然读的也不是严格的百分比,
2 有一定的误差。*/
3 SELECT * FROM (SELECT * FROM EMP SAMPLE(90)) WHERE ROWNUM < 514 select * from emp SAMPLE(10);
原文地址:https://www.cnblogs.com/caroline/p/2481259.html