暂无图片
Oracle怎么生成一个唯一随机数?
我来答
分享
暂无图片 匿名用户
Oracle怎么生成一个唯一随机数?

Oracle怎么生成一个唯一随机数?

我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
张sir

可以通过包dbms_random生成随机数,请参考,以下文章。

https://blog.csdn.net/yawei_liu1688/article/details/108347483

暂无图片 评论
暂无图片 有用 0
打赏 0
刘贵宾

生成一个全局唯一的、32位的字符串:SYS_GUID()
生成单独的GUID :select SYS_GUID() from dual;
生成多个GUID: select sys_guid() from dual connect by rownum<10;

暂无图片 评论
暂无图片 有用 0
打赏 0
DarkAthena

随机就已经意味着不唯一了。
因为随机的每一个值,都与上一个值没有关系。
在有限的数据长度下,比如5位数,当数据所有可能的值都被用完后,比如0-99999,下一个值必然会出现重复。
因此只能先识别出这个值可能的最大个数,比如永远都不会超过8位数,那么这个时候就可以在0-99999999之间取值了。
接下来看你取随机值的目的,是为了保证唯一性还是为了乱序。如果只是为了唯一,建一个序列就好了;如果是为了乱序,那么就需要加一个表,结合随机数,将每次随机到的数存下来,下次取随机数的时候去表里扫一下,发现已经存在就再随机一次(这种方式越到后面效率越低,可能需要更复杂的算法)

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏