会计考友 发表于 2012-8-4 13:54:49

Oracle辅导:Oracle随机函数的调用(1)

简单得说,通过dbms_random包调用随机数的方法大致有4种:   1、dbms_random.normal
  这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。
  简单测试了一下,产生100000次最大能到5左右:
  SQL> declare
  2  i number:=0;
  3  j number:=0;
  4 begin
  5  for k in 1 .. 100000 loop
  6  i:= dbms_random.normal;
  7  if i > j
  8      then j:=i;
  9  end if;
  10  end loop;
  11  dbms_output.put_line(j);
  12 end;
  13 /
  5.15325081797418404136433867107468983182
  PL/SQL procedure successfully completed
  2、dbms_random.random
  这个也没有参数,返回一个从-power(2,31)到power(2,31)的整数值
  3、dbms_random.value
  这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位小数
  SQL > column value format 9.99999999999999999999999999999999999999
  SQL > select dbms_random.value from dual;
  VALUE
  -----------------------------------------
  .58983014999643548701631750396301271752

</p>  RMAN> SWITCH DATAFILE 6 TO COPY;
  datafile 6 switched to datafile copy "+DGROUP1/toasm/datafile/users.265.683431079"
  RMAN> SQL 'ALTER DATABASE DATAFILE 6 ONLINE';
  RMAN> RECOVER DATAFILE 6;
  Starting recover at 06-APR-09
  using channel ORA_DISK_1
  starting media recovery
  media recovery complete, elapsed time: 00:00:01
  Finished recover at 06-APR-09
  RMAN> SQL 'ALTER DATABASE DATAFILE 6 ONLINE';
  sql statement: ALTER DATABASE DATAFILE 6 ONLINE
  RMAN> REPORT SCHEMA;
  Report of database schema
  List of Permanent Datafiles
  ===========================
  File Size(MB) Tablespace         RB segs Datafile Name
  ---- -------- -------------------- ------- ------------------------
  1    480      SYSTEM               ***   +DGROUP1/toasm/datafile/system.258.683428337
  2    25       UNDOTBS1             ***   +DGROUP1/toasm/datafile/undotbs1.260.683428483
  3    230      SYSAUX               ***   +DGROUP1/toasm/datafile/sysaux.259.683428421
  4    5      USERS                ***   +DGROUP1/toasm/datafile/users.262.683428489
  5    100      EXAMPLE            ***   +DGROUP1/toasm/datafile/example.261.683428467
  6    10       USERS                ***   +DGROUP1/toasm/datafile/users.265.683431079
  List of Temporary Files
  =======================
  File Size(MB) Tablespace         Maxsize(MB) Tempfile Name
  ---- -------- -------------------- ----------- --------------------
  2    100      TEMP               32767       +DGROUP1/toasm/tempfile/temp.263.683428909
  RMAN>
页: [1]
查看完整版本: Oracle辅导:Oracle随机函数的调用(1)