Oracle认证:Oracle随机函数调用

 我来答
机器1718
2022-10-30 · TA获得超过6855个赞
知道小有建树答主
回答量:2805
采纳率:99%
帮助的人:162万
展开全部
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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式