Oracle认证:Oracle随机函数调用
1个回答
展开全部
Oracle随机函数调用 简单得说 通过dbms_random包调用随机数的方法大致有 种 dbms_random normal 这个函数不带参数 能返回normal distribution的一个number类型 所以基本上随机数会在 到 之间 简单测试了一下 产生 次最大能到 左右 SQL》 declare i number = j number = begin for k in loop i = dbms_random normal if i 》 j then j =i end if end loop dbms_output put_line(j) end / PL/SQL procedure successfully pleted dbms_random random 这个也没有参数 返回一个从 power( )到power( )的整数值 dbms_random value 这个函数分为两种 一种是没有参数 则直接返回 之间的 位小数 SQL 》 column value format SQL 》 select dbms_random value from dual VALUE 第二种是加上两个参数a b 则返回值在a b之间的 位小数 SQL 》 column value format SQL 》 select dbms_random value( ) value from dual VALUE 注意 无论前面几位 小数点之后都是 位 dbms_random string 这个函数必须带有两个参数 前面的字符指定类型 后面的数值指定位数(最大 ) 类型说明 u U upper case alpha characters only l L lower case alpha characters only a A alpha characters only (mixed case) x X any alpha numeric characters (upper) p P any printable characters SQL 》 column value format a SQL 》 select dbms_random string( u ) value from dual VALUE VTQNLGISELPXEDBXKUZLXKBAJMUTIA SQL 》 select dbms_random string( l ) value from dual VALUE uqyg *** quingfqdytpgjvdoblxeglgu SQL 》 select dbms_random string( a ) value from dual VALUE NGTGkQypuSWhBfcrHiOlQwOUXkqJjy SQL 》 select dbms_random string( x ) value from dual VALUE UVWONYJMXT VEFPD WJCJ QT BD SQL 》 select dbms_random string( p ) value from dual VALUE mak$(WT M_ 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 lishixinzhi/Article/program/Oracle/201311/16934
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询