Oracle中如何⽣成随机数字、随机字符串、随机⽇期 11.随机⼩数
2 dbms_random.value(low,high): --获取⼀个[low,high)之间的⼩数,包含low,不包含high
3可以结合trunc函数获取整数
4
5例如:
6select dbms_random.value from dual; --⽣成0-1之间的⼩数
7select dbms_random.value(0,100) from dual; --⽣成0-100之间的⼩数
8select trunc(dbms_random.value(0,1000)) from dual; --⽣成0-1000之间的整数
9select substr(cast(dbms_random.value(1,100000) as varchar2(10)),1,5) from dual; --⽣成5位数字
10
112.随机整数
12 dbms_random.random; --获取⼀个[-2的31次⽅,2的31次⽅)之间的整数,包含-2的31次⽅,不包含2的31次⽅
13
143.随机字符串
15 dbms_random.string (opt char, len number);
16--opt:表⽰返回值可能包含的东西
17----'u','U' : 任何⼤写字母
18----'l','L' : 任何⼩写字母
19----'a','A' : ⼤⼩写混合字母
20----'x','X' : ⼤写字母和数字混合
21----'p','P' : 任何可打印字符
22----其他参数 : 任何⼤写字母
23--len:表⽰要返回的字符串长度
24oracle trunc函数的使用方法
254.从正态分布得到⼀个随机数
26 al
27
285.随机⽣成⽇期
29select to_char(sysdate,'J') from dual; --2458054 获取指定⽇期的基数(内部⽇期数)
30
31我们就要⽤带有low_value等于2458054、high_value等于2458054+364,作为dbms_random.value的两个参数,再把它转换成⽇期
32select to_date(trunc(dbms_random.value(2458054,2458054+364)),'J') from dual;
33也可以动态写成:
34select to_date(to_char(sysdate,'J')+trunc(dbms_random.value(0,365)),'J') from dual;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论