熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle認證:Oracle隨機函數調用

2013-11-13 15:34:05  來源: 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


From:http://tw.wingwit.com/Article/program/Oracle/201311/16934.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.