DBMS_RANDOM 系统包提供了一个内置的随机码生成器。DBMS_RANDOM 不用于加密。
DBMS_RANDOM 安全模型
此系统包应在 SYS 用户下安装。默认情况下,使用当前用户名、当前时间(精确到秒)以及当前会话初始化包。
DBMS_RANDOM 使用说明
DBMS_RANDOM.RANDOM
随机在 [-2^31,2^31)中生成整数。DBMS_RANDOM.VALUE
随机值在 [0,1)中生成精度为 38 位的数字。
DBM_RANDOM 可以进行显示初始化,但在调用随机码生成器之前不需要初始化。如果没有执行显式初始化,它将使用日期、用户 ID 和进程 ID 自动进行初始化。
如果使用相同的种子对该包进行两次种子设定,然后以相同的方式访问,则在这两种情况下都将产生相同的结果。
在某些情况下,例如在测试时,您可能希望每次运行的随机数序列相同。在这种情况下,您可以通过调用 DBMS_RANDOM.SEED
重载来为生成器植入一个常量。要为每次运行生成不同的输出,只需忽略对“Seed”的调用,系统就会为您选择合适的种子。
DBMS_RANDOM 子程序概览
下表列出了 OceanBase 数据库当前版本所支持的 DBMS_RANDOM 子程序以及简要描述。
子程序 | 描述 |
---|---|
使用种子值进行包的初始化。 | |
返回正态分布的随机码。 | |
生成一个随机数。 | |
重置种子。 | |
获取随机字符串。 | |
终止包。 | |
此函数获取一个大于或等于 0 且小于 1 的随机数,小数点右侧有 38 位数字(38 位精度),而重载函数获取一个随机数 x,其中 x 大于或等于最小值,且小于最大值。 |