[Home] [Help]
PACKAGE BODY: APPS.CCT_RANDOM_UTIL
Source
1 PACKAGE BODY CCT_Random_UTIL as
2 /* $Header: ccturanb.pls 120.0 2005/06/02 09:31:40 appldev noship $ */
3 v_multiplier constant NUMBER := 22695477;
4 v_increment constant NUMBER := 1;
5 v_seed number := 1;
6
7 PROCEDURE Change_Seed(p_newSeed NUMBER) IS
8 BEGIN
9 v_seed := p_newSeed;
10 END;
11
12
13 FUNCTION Rand return NUMBER IS
14 BEGIN
15 v_seed := MOD(v_multiplier * v_seed + v_increment, (2 ** 16));
16 return v_seed;
17 END RAND;
18
19 FUNCTION Rand_Max(p_MaxVal NUMBER) return NUMBER IS
20 BEGIN
21 return MOD(Rand, p_MaxVal) + 1;
22 END;
23
24 FUNCTION Rand_Between(p_MinVal NUMBER, p_MaxVal NUMBER)
25 return NUMBER IS
26 l_minVal NUMBER := p_MinVal;
27 l_maxVal NUMBER := p_MaxVal;
28 BEGIN
29 if (p_MinVal > p_MaxVal) then
30 l_minVal := p_MaxVal;
31 l_maxVal := p_MinVal;
32 end if;
33
34 return Rand_Max(l_maxVal - l_minVal) + l_minVal;
35 END;
36
37
38
39 BEGIN
40 -- initialization
41 Change_Seed(TO_NUMBER(TO_CHAR(SYSDATE, 'SSSSS')));
42 END CCT_Random_UTIL;