a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 86|回复: 0

[综合] Oracle辅导:Oracle随机函数的调用(1)

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
简单得说,通过dbms_random包调用随机数的方法大致有4种:   1、dbms_random.normal5 o2 C) ?" \! Q8 N
  这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。
& y" O1 ~* h  \  简单测试了一下,产生100000次最大能到5左右:" b% c6 z% R1 P1 d5 Y
  SQL> declare1 @% ^/ b! u- u
  2  i number:=0;5 N" D- ]$ H: d; \; F% y2 b
  3  j number:=0;* q. d9 J  U4 E4 E4 r
  4 begin
) L5 m& s$ N# q+ a. x1 v  5  for k in 1 .. 100000 loop( I( Q/ g, y/ t
  6  i:= dbms_random.normal;. I* G# |8 @9 G' G5 U: ~  J4 o0 p
  7    if i > j
  f3 K8 a8 R# |# [; o+ H) u5 B  8      then j:=i;
8 F9 j* F1 z+ b% I  9    end if;, x( j, f2 U' w9 L
  10  end loop;
3 }/ @& g: Z; Q1 g" I. Q' t* V  11  dbms_output.put_line(j);
; d+ P* y4 S$ X7 p+ m3 L. u2 ]  12 end;
6 L+ G$ X- H- @0 F7 Q3 h  13 /) D+ ^7 v9 ~) Y* ^' D/ c
  5.15325081797418404136433867107468983182' i0 h& _8 `2 y% G% N
  PL/SQL procedure successfully completed. o2 Z: G; B/ B/ [2 c
  2、dbms_random.random$ u% O! a# {3 {3 ^. d  n) l6 U- ]
  这个也没有参数,返回一个从-power(2,31)到power(2,31)的整数值
/ j0 s, g1 ~2 V" a  3、dbms_random.value
3 W9 ^! A! |8 e6 z/ y/ b) ^% b6 ]% D  这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位小数
% F& d, w* V' h5 }/ r, G  _  SQL > column value format 9.99999999999999999999999999999999999999
0 _8 {3 i3 k) J* [5 {' U& P$ G  SQL > select dbms_random.value from dual;8 D( r8 i9 [* d& a) D' L" e
  VALUE2 O& [& P) t* r9 M
  -----------------------------------------5 s' e: z. a0 x7 q! x# T9 f2 q" u! W
  .58983014999643548701631750396301271752
0 Q  P! Q$ U# u7 o
0 h( h; }( J% |) o; N# h5 M</p>  RMAN> SWITCH DATAFILE 6 TO COPY;
. X/ Y* R% C+ V/ K8 I) Z& U) C  datafile 6 switched to datafile copy "+DGROUP1/toasm/datafile/users.265.683431079"1 s: o% H9 d/ u8 R8 h1 b$ `
  RMAN> SQL 'ALTER DATABASE DATAFILE 6 ONLINE';8 f- U5 T0 K' C* A: P, b
  RMAN> RECOVER DATAFILE 6;- r1 {+ r2 K  N: f3 W/ Z, D
  Starting recover at 06-APR-09% y* L/ E1 v8 b! n; H
  using channel ORA_DISK_1# Z' j( a6 X3 f) Y
  starting media recovery* Y/ m1 |- T9 Y& ]* b
  media recovery complete, elapsed time: 00:00:01! }0 }. O( J- A( U9 r, [
  Finished recover at 06-APR-099 T0 X' E: [; T5 V8 V9 ^4 C
  RMAN> SQL 'ALTER DATABASE DATAFILE 6 ONLINE';5 h: H% N5 A8 Q* l1 N) E: `
  sql statement: ALTER DATABASE DATAFILE 6 ONLINE
/ I0 C. T, i5 |7 Q) _9 I  p  RMAN> REPORT SCHEMA;
- S( j, f6 h0 c$ N9 ~% S% v" I  Report of database schema
5 q" c5 R" S. G: @  List of Permanent Datafiles6 o8 w9 z0 i% o8 l# E2 @* U+ f/ j+ m
  ===========================
6 }) @/ h' G' E* f0 w+ p  File Size(MB) Tablespace           RB segs Datafile Name
/ @5 X. e4 F8 R4 `1 k4 c& _, d  ---- -------- -------------------- ------- ------------------------
- Y2 l, E( R) x+ R/ s5 `& v) d  1    480      SYSTEM               ***     +DGROUP1/toasm/datafile/system.258.6834283375 a: Z0 D  I% B( g# V
  2    25       UNDOTBS1             ***     +DGROUP1/toasm/datafile/undotbs1.260.683428483
# U3 R0 m$ u5 s: t% p  3    230      SYSAUX               ***     +DGROUP1/toasm/datafile/sysaux.259.683428421
3 F% k/ V& G! q/ f0 I  4    5        USERS                ***     +DGROUP1/toasm/datafile/users.262.683428489
9 `# i& u) i; I. g  5    100      EXAMPLE              ***     +DGROUP1/toasm/datafile/example.261.683428467
- n! e3 s7 S; w. m% }+ T9 c7 Q: j5 b: B  6    10       USERS                ***     +DGROUP1/toasm/datafile/users.265.683431079
" X* e' b0 \) \. k  List of Temporary Files: b4 y. }$ X  H0 C( H$ v. m
  =======================
9 i8 j- T: e+ e7 v4 x  File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
& j) A1 E3 N; t' L' W' A  ---- -------- -------------------- ----------- --------------------
, t. A) d0 A) R( e' n+ W  2    100      TEMP                 32767       +DGROUP1/toasm/tempfile/temp.263.683428909
! |" i8 X- D0 H. x4 c  t  RMAN>
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 13:04 , Processed in 0.403192 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表