Oracle生成随机数或唯一随机数

1.小数
dbms_random.value(low,high): --获取一个[low,high)之间的小数,包含low,不包含high
可以结合trunc函数获取整数
例如:
select dbms_random.value from dual; --生成0-1之间的小数
select dbms_random.value(0,10) from dual; --生成0-10之间的小数
select trunc(dbms_random.value(0,100)) from dual; --生成0-100之间的整数
select substr(cast(dbms_random.value(1,100000) as varchar2(10)),1,5) from dual; --生成5位数字
2.整数
select trunc(dbms_random.value(0,100)) from dual; --生成0-100之间的整数
3、DBMS_RANDOM.RANDOM 返回 [-2^^31, 2^^31)的整数,语法:
select DBMS_RANDOM.RANDOM from dual connect by rownum <=10;
4.字符串
dbms_random.string (opt char, len number);
–opt:表示返回值可能包含的东西
----‘u’,‘U’ : 任何大写字母
----‘l’,‘L’ : 任何小写字母
----‘a’,‘A’ : 大小写混合字母
----‘x’,‘X’ : 大写字母和数字混合
----‘p’,‘P’ : 任何可打印字符
----其他参数 : 任何大写字母
–len:表示要返回的字符串长度
select dbms_random.string(‘u’,32) “u_8_password” from dual;
5.从正态分布得到一个随机数
dbms_random.normal
6.生成日期
select to_char(sysdate,‘J’) from dual; --获取指定日期的基数(内部日期数)
用带有low_value等于2458054、high_value等于2458054 364,作为dbms_random.value的两个参数,再把它转换成日期
select to_date(trunc(dbms_random.value(2458054,2458054 364)),‘J’) from dual;
也可以动态写成:
select to_date(to_char(sysdate,‘J’) trunc(dbms_random.value(0,365)),‘J’) from dual;
7、生成一个全局唯一的、32位的字符串:SYS_GUID()
生成单独的GUID :select SYS_GUID() from dual;
生成多个GUID: select sys_guid() from dual connect by rownum<10

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值