最近在给公司开发人员造数据,这些数据要随机范围的,就用到了dbms_random函数。这个函数不光能造一些随机数字,还能随机造一些日
最近在给公司开发人员造数据,这些数据要随机范围的,就用到了dbms_random函数。这个函数不光能造一些随机数字,还能随机造一些日期|字符等。
dbms_random在官方文档的 pl/sql packages and types reference-->75 dbms_random这个位置。
--------------------------------------分割线 --------------------------------------
生成动态前缀且自增号码的oracle函数
spring storedprocedure调用oracle函数各种异常解决方法
oracle函数之case和decode的用法区别及性能比较
oracle函数wmsys.wm_concat的使用
sql中oracle函数列表速查
--------------------------------------分割线 --------------------------------------
1.产生随机数字
sql> select dbms_random.value from dual;
value
----------
.360532538
sql> 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))
-------------------------------
57
sql> 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
---------------------
2456660
sql> 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-24
sql> 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)
--------------------------------------------------------------------------------
egnhrpzmkllvuwhmnpbb
sql> select dbms_random.string('a', 20) from dual;
dbms_random.string('a',20)
--------------------------------------------------------------------------------
ilmlbgnlvqwaufbtjxhn
sql> select dbms_random.string('u',20) from dual;
dbms_random.string('u',20)
--------------------------------------------------------------------------------
dlamfmwnwwuexoaqgnjt
sql> select dbms_random.string('u',20) from dual;
dbms_random.string('u',20)
--------------------------------------------------------------------------------
qygpitupjhmktoakfcgx
sql> select dbms_random.string('l',20) from dual;
dbms_random.string('l',20)
--------------------------------------------------------------------------------
nbxvjzdddxduwkvmfubp
sql> select dbms_random.string('l',20) from dual;
dbms_random.string('l',20)
--------------------------------------------------------------------------------
ujyqkuocrhouphozxktm
sql>
‘u’用来生成大写字符
‘l’用来生成小写字符
‘a’用来生成大小写混合的字符
本文永久更新链接地址: