在oracle中生成8位数的随机数,该数字应该是唯一的

时间:2016-05-22 06:30:49

标签: oracle plsql

我已经编写了查询以生成随机的8位数字,然后我将值插入表中。生成的数字应该是唯一的。

示例:下面说的是查询,这会生成随机的8位数字,然后我将其插入表格temp。现在每次插入表之前,我如何检查从下面的查询生成的数字是否在临时表中是否已经退出?

使用for循环似乎没有用,因为当同时会有大量事务时会导致延迟。任何其他建议,如goto,如果数字已经在表中,我们可以使用goto然后将其重定向到同一查询,直到我们得到一个唯一值?

查询:

select trunc(dbms_random.value(10000000,99999999)) 
into v_customer_nbr  
from dual;

1 个答案:

答案 0 :(得分:1)

如果您正在寻找唯一值,那么您应该考虑使用SYS_GUIDSYS_GUID生成并返回由16个字节组成的全局唯一标识符。