Oracle 随机函数 DBMS_RANDOM

来源:互联网 发布:人工智能 哈工大 网盘 编辑:程序博客网 时间:2024/05/22 07:52
          最近在给公司开发人员造数据,这些数据要随机范围的,就用到了DBMS_RANDOM函数。这个函数不光能造一些随机数字,还能随机造一些日期|字符等

           DBMS_RANDOM在官方文档的 PL/SQL Packages and Types Reference-->75 DBMS_RANDOM这个位置。

      

      

  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))-------------------------------                             34

   3.产生随机日期

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’用来生成大小写混合的字符

0 0
原创粉丝点击