DBA Data[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;