数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle认证:Oracle随机函数调用


发布日期:2022年02月10日
 
Oracle认证:Oracle随机函数调用
Oracle随机函数调用简单得说通过dbms_random包调用随机数的方法大致有

dbms_randomnormal

这个函数不带参数能返回normal distribution的一个number类型所以基本上随机数会在之间

简单测试了一下产生次最大能到左右

SQL》 declare

i number=

j number=

begin

for k in loop

i= dbms_randomnormal

if i 》 j

then j=i

end if

end loop

dbms_outputput_line(j)

end

/

PL/SQL procedure successfully completed

dbms_randomrandom

这个也没有参数返回一个从power()到power()的整数值

dbms_randomvalue

这个函数分为两种一种是没有参数则直接返回之间的位小数

SQL 》 column value format

SQL 》 select dbms_randomvalue from dual

VALUE

第二种是加上两个参数ab则返回值在ab之间的位小数

SQL 》 column value format

SQL 》 select dbms_randomvalue() value from dual

VALUE

注意无论前面几位小数点之后都是

dbms_randomstring

这个函数必须带有两个参数前面的字符指定类型后面的数值指定位数(最大

类型说明

uU upper case alpha characters only

lL lower case alpha characters only

aA alpha characters only (mixed case)

xX any alphanumeric characters (upper)

pP any printable characters

SQL 》 column value format a

SQL 》 select dbms_randomstring(u) value from dual

VALUE

VTQNLGISELPXEDBXKUZLXKBAJMUTIA

SQL 》 select dbms_randomstring(l) value from dual

VALUE

uqygsbquingfqdytpgjvdoblxeglgu

SQL 》 select dbms_randomstring(a) value from dual

VALUE

NGTGkQypuSWhBfcrHiOlQwOUXkqJjy

SQL 》 select dbms_randomstring(x) value from dual

VALUE

UVWONYJMXTVEFPDWJCJQTBD

SQL 》 select dbms_randomstring(p) value from dual

VALUE

mak$(WTM_c/+f[_XUscf$P Zcq{

关于seed

可以设置seed来确定随机数的起始点对于相同的seed而言随机数的任意一次变化都将是确定的

就是说如果在某一时刻调用了seed之后第一次产生的随机数是第二次是第三次是那么当你再次调用相同的seed之后一次产生的随机数还是

seed有两种一种是数值型的一种是字符型(最大长度)的

—— Seed with a binary integer

PROCEDURE seed(val IN BINARY_INTEGER )

PRAGMA restrict_references (seed WNDS )

—— Seed with a string (up to length

PROCEDURE seed(val IN VARCHAR

PRAGMA restrict_references (seed WNDS )

关于initialize

一个integer参数注释说的很清楚了

—— Obsolete just calls seed(val)

PROCEDURE initialize(val IN BINARY_INTEGER )

PRAGMA restrict_references (initialize WNDS )

sys_guid()

官方文档的说明如下

SYS_GUID generates and returns a globally unique identifier (RAW value) made up of bytes On most platforms the generated identifier consists of a host identifier a process or thread identifier of the process or thread invoking the function and a nonrepeating value (sequence of bytes) for that process or thread

简单得说就是随机生成一个位的RAW但是后面的那段经过实验发现不是这么回事每次生成的字符串都千差万别不知道为什么

在具体应用中除了可以用来插入生成唯一的标识符外还可以用来取表中的任意一条记录

select * from ( select * from t order by sys_guid()) where rownum =

powershell

上一篇:ORACLE常用傻瓜问题1000问全集(七)

下一篇:在不安装Oracle客户端的情况下进行系统移植