Oracle中产生各种随机数的方法
使用dbms_random包中的函数生成随机数
注:dbms_random.value(10,100)为左闭右开区间;
--生成一个0~1之间的随机小数 select dbms_random.value as random_number from dual; --生成一个0到100之间的整数随机数 select floor(dbms_random.value(0, 101)) as random_number from dual; --生成一个由10个字符组成的随机字符串,字符集为大写字母和数字 select dbms_random.string('U', 10) as random_string from dual; --随机打印5个(大小写)字母/字符/数字 select dbms_random.value(100, 0) a, dbms_random.string('u', 5) b, --随机打印5个大写字母 dbms_random.string('l', 5) c, --随机打印5个小写字母 dbms_random.string('a', 5) d, --随机打印5个字母 dbms_random.string('x', 5) e, --随机打印5个大写字母和数字 dbms_random.string('p', 5) f --随机打印5个可打印字符 from dual; --生成一个1~100的随机数(带小数位) select dbms_random.value(1, 100) from dual;
--根据年龄计算出生年份
select to_char(add_months(sysdate, -12 * 26), 'yyyy') as csny from dual;
--oracle生成两位随机的月份
select to_char(floor(dbms_random.value(1, 12)), 'FM00') as random_month from dual;
--说明:使用DBMS_RANDOM包来生成两位随机数,FM00格式会确保即使生成的数字为个位数,也会在前面补上0以确保结果是两位数
--根据年龄生成测试数据身份证号的方式
select age,
'370300' || to_char(add_months(sysdate, -12 * age), 'yyyy') ||
to_char(floor(dbms_random.value(1, 12)), 'FM00') ||
floor(dbms_random.value(10, 31)) ||
round(dbms_random.value(1000, 9999), 0)
from table_name t;
原文链接:https://blog.csdn.net/m0_71406734/article/details/130514098
标签:
Oracle
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2023-04-15 行政区划代码
2023-04-15 mysql如何查询所有表和字段信息