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 < 51; 4 select * from emp SAMPLE(10);