a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 84|回复: 0

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

[复制链接]
发表于 2012-8-4 13:54:49 | 显示全部楼层 |阅读模式
简单得说,通过dbms_random包调用随机数的方法大致有4种:   1、dbms_random.normal
# z# o. z& T) ]9 Q5 {& D  这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间。
1 V5 p+ f: i/ q, Z/ S& ]6 q) i8 T  简单测试了一下,产生100000次最大能到5左右:
* q2 d. R- {3 y% i5 k( u$ ~  SQL> declare0 @6 d6 U2 c$ M3 n
  2  i number:=0;7 X6 S$ w8 P; G$ y- D
  3  j number:=0;; w/ G+ D0 d2 h8 C' h. \" Y
  4 begin
, f7 t, y5 b1 `: O9 J; O  5  for k in 1 .. 100000 loop0 n/ I& W' m& x1 t1 v
  6  i:= dbms_random.normal;' |" Q4 P* ^5 |( q* z' c& F
  7    if i > j
9 o: b2 |7 K' c4 Y  8      then j:=i;# I* C7 I+ b/ z4 O9 h( z9 c
  9    end if;) u& k/ C( B" W  N
  10  end loop;
$ `  D: U  W5 U% q* }( l/ J  11  dbms_output.put_line(j);$ `0 U) f) y( v9 j6 n2 {! X
  12 end;
* Z( H. O) {# G, f$ C  13 /
5 [6 n5 C7 }4 u: |1 N  5.15325081797418404136433867107468983182
( l9 Z4 p2 T$ g1 t  PL/SQL procedure successfully completed. @1 `2 R1 P6 Z9 |
  2、dbms_random.random5 a2 ?2 u1 H  f% G5 _
  这个也没有参数,返回一个从-power(2,31)到power(2,31)的整数值
; G" ]+ [6 N7 ~: w+ U  e  3、dbms_random.value
$ g+ r! I! t* E6 g/ _% d  这个函数分为两种,一种是没有参数,则直接返回0-1之间的38位小数
" S8 l* n8 f. A9 [- S2 j$ C$ d3 {  SQL > column value format 9.99999999999999999999999999999999999999
8 S) R0 I) A) I* I# J  SQL > select dbms_random.value from dual;
9 D' }0 a5 q! J, s5 b  VALUE: N1 B2 m7 x& z6 b0 U: I
  -----------------------------------------& M4 S) F4 H  v
  .58983014999643548701631750396301271752
8 Z" b- p9 {/ p/ m- b! T. k+ q  T : N. y* q! C/ B5 B
</p>  RMAN> SWITCH DATAFILE 6 TO COPY;9 S7 S0 l9 s' x% U3 F
  datafile 6 switched to datafile copy "+DGROUP1/toasm/datafile/users.265.683431079"+ j2 G$ I/ n, g7 Y( i
  RMAN> SQL 'ALTER DATABASE DATAFILE 6 ONLINE';' [* P! }; a+ ?$ }( A6 W  N; u1 C
  RMAN> RECOVER DATAFILE 6;+ o( z) y6 f* k4 \! u
  Starting recover at 06-APR-09  `8 b# c& G. t  J: j* s& |! {
  using channel ORA_DISK_1% J* a. L+ g3 R! a
  starting media recovery$ G" G- h- h  P! G5 U6 |
  media recovery complete, elapsed time: 00:00:01
. U. m9 ?6 P3 }. M+ E" Q" E& l  Finished recover at 06-APR-09
+ k3 X# f2 ?- ?  V  RMAN> SQL 'ALTER DATABASE DATAFILE 6 ONLINE';
( f2 H9 L7 G/ F! j, I8 x7 n  sql statement: ALTER DATABASE DATAFILE 6 ONLINE
  y; c! ?$ C  W/ @  RMAN> REPORT SCHEMA;
7 z$ h1 t  }. z, n! P# A# {/ G$ j& K3 |  Report of database schema
5 y  Y7 T: F+ m+ i. C- N4 y  List of Permanent Datafiles
# X# U- ^5 \8 S8 |, x5 @/ m- H  ===========================
9 i  Y" S* [& l) o! p' X  File Size(MB) Tablespace           RB segs Datafile Name, J- I- O- K- r' g
  ---- -------- -------------------- ------- ------------------------+ t! m! W1 [: h3 ~) Z5 f/ B1 S
  1    480      SYSTEM               ***     +DGROUP1/toasm/datafile/system.258.683428337
8 G% f( o' a8 r$ a3 u  2    25       UNDOTBS1             ***     +DGROUP1/toasm/datafile/undotbs1.260.683428483
% n) z7 p7 c" ?8 c1 N1 Z* c5 b  3    230      SYSAUX               ***     +DGROUP1/toasm/datafile/sysaux.259.683428421
8 c& Q4 u& o7 b) d. s1 R7 j0 e  4    5        USERS                ***     +DGROUP1/toasm/datafile/users.262.683428489
6 ~+ b) }, ^# n. w  K) [+ b- @  5    100      EXAMPLE              ***     +DGROUP1/toasm/datafile/example.261.6834284675 T$ D( V/ Z/ j) U! \
  6    10       USERS                ***     +DGROUP1/toasm/datafile/users.265.683431079) K5 e. T. V: g& S; T& N
  List of Temporary Files
% M6 f! L" e7 F, J; C* |: N' U  =======================
& P! v" E# k8 o% E' l  File Size(MB) Tablespace           Maxsize(MB) Tempfile Name! V" f- ?& u* o+ {
  ---- -------- -------------------- ----------- --------------------
4 c9 q2 z1 Z7 E- Y: g. T  2    100      TEMP                 32767       +DGROUP1/toasm/tempfile/temp.263.6834289090 x* G* L, s- Q4 K, q! _9 h
  RMAN>
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 07:12 , Processed in 0.183456 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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