Welcome 微信登录

首页 / 数据库 / MySQL / Oracle 随机函数 DBMS_RANDOM

最近在给公司开发人员造数据,这些数据要随机范围的,就用到了DBMS_RANDOM函数。这个函数不光能造一些随机数字,还能随机造一些日期|字符等。DBMS_RANDOM在官方文档的 PL/SQL Packages and Types Reference-->75 DBMS_RANDOM这个位置。--------------------------------------分割线 --------------------------------------生成动态前缀且自增号码的Oracle函数 http://www.linuxidc.com/Linux/2014-03/98505.htmSpring StoredProcedure调用Oracle函数各种异常解决方法 http://www.linuxidc.com/Linux/2013-12/93697.htmOracle函数之case和decode的用法区别及性能比较 http://www.linuxidc.com/Linux/2012-08/67104.htmOracle函数wmsys.wm_concat的使用 http://www.linuxidc.com/Linux/2012-04/59169.htmSQL中Oracle函数列表速查 http://www.linuxidc.com/Linux/2011-09/44084.htm--------------------------------------分割线 --------------------------------------1.产生随机数字SQL> SELECT DBMS_RANDOM.VALUE FROM DUAL;   VALUE
----------
.360532538SQL> SELECT DBMS_RANDOM.VALUE(0, 100) FROM DUAL;     DBMS_RANDOM.VALUE(0,100)
-------------------------------
                   26.8474818这个函数在默认下回产生0-1之间的小数,如果加入参数的话,会产生参数之间的小数2.产生整数SQL> SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) FROM DUAL;TRUNC(DBMS_RANDOM.VALUE(0,100))
-------------------------------
                           57SQL> SELECT TRUNC(DBMS_RANDOM.VALUE(0, 100)) FROM DUAL;TRUNC(DBMS_RANDOM.VALUE(0,100))
-------------------------------
                           343.产生随机日期SQL> SELECT TO_CHAR(TO_DATE("2014-01-02","yyyy-mm-dd"),"J")FROM DUAL;TO_CHAR(TO_DATE("2014
---------------------
2456660SQL> SELECT to_char(to_date(TRUNC(DBMS_RANDOM.VALUE(2456660,2456660+180)),"j"),"yyyy-mm-dd") FROM DUAL;TO_CHAR(TO_DATE(TRUNC(DBMS_RAN
------------------------------
2014-02-24SQL> SELECT to_char(to_date(TRUNC(DBMS_RANDOM.VALUE(2456660,2456660+180)),"j"),"yyyy-mm-dd") FROM DUAL;TO_CHAR(TO_DATE(TRUNC(DBMS_RAN
------------------------------
2014-02-28上面的意思是 ,想要2014-01-02以后180以内随机的日期,先计算出2014-01-02那天对应的oracle内部日期数,然后根据这个计算便宜量。4.随机字符SQL> SELECT DBMS_RANDOM.STRING("A", 20) FROM DUAL;DBMS_RANDOM.STRING("A",20)
--------------------------------------------------------------------------------
egNhrpzmklLVUWHMNPbbSQL> SELECT DBMS_RANDOM.STRING("A", 20) FROM DUAL;DBMS_RANDOM.STRING("A",20)
--------------------------------------------------------------------------------
IlMlBgNlvqwaufbTJxHNSQL> SELECT DBMS_RANDOM.STRING("U",20) FROM DUAL;DBMS_RANDOM.STRING("U",20)
--------------------------------------------------------------------------------
DLAMFMWNWWUEXOAQGNJTSQL> SELECT DBMS_RANDOM.STRING("U",20) FROM DUAL;DBMS_RANDOM.STRING("U",20)
--------------------------------------------------------------------------------
QYGPITUPJHMKTOAKFCGXSQL> SELECT DBMS_RANDOM.STRING("L",20)  FROM DUAL;DBMS_RANDOM.STRING("L",20)
--------------------------------------------------------------------------------
nbxvjzdddxduwkvmfubpSQL> SELECT DBMS_RANDOM.STRING("L",20)  FROM DUAL;DBMS_RANDOM.STRING("L",20)
--------------------------------------------------------------------------------
ujyqkuocrhouphozxktmSQL>‘U’用来生成大写字符
‘L’用来生成小写字符
‘A’用来生成大小写混合的字符更多Oracle相关信息见Oracle 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=12本文永久更新链接地址