[Home] [Help]
PACKAGE BODY: APPS.CCT_HEX_UTIL_PUB
Source
1 PACKAGE BODY CCT_HEX_UTIL_PUB AS
2 /* $Header: cctphxub.pls 115.0 2003/03/14 20:01:20 svinamda noship $ */
3
4 G_PKG_NAME CONSTANT VARCHAR2(30) := 'CCT_HEX_UTIL_PUB';
5
6
7 FUNCTION DECNUM_TO_HEXCHAR
8 (
9 p_dec_num IN NUMBER
10 )
11 RETURN VARCHAR2 IS
12 l_hex_num VARCHAR2(1);
13 BEGIN
14 l_hex_num := '';
15 if ((p_dec_num = 0) or ((p_dec_num > 0) and (p_dec_num < 10)))
16 then
17 l_hex_num := TO_CHAR(p_dec_num);
18 --dbms_output.put_line('l_hex_num = ' || l_hex_num);
19 elsif (p_dec_num = 10) then l_hex_num := 'A';
20 elsif (p_dec_num = 11) then l_hex_num := 'B';
21 elsif (p_dec_num = 12) then l_hex_num := 'C';
22 elsif (p_dec_num = 13) then l_hex_num := 'D';
23 elsif (p_dec_num = 14) then l_hex_num := 'E';
24 elsif (p_dec_num = 15) then l_hex_num := 'F';
25 end if;
26 --dbms_output.put_line('l_hex_num = ' || l_hex_num);
27 return l_hex_num;
28 END;
29
30
31 FUNCTION DEC_TO_HEX
32 (
33 p_dec_num IN NUMBER
34 )
35 RETURN VARCHAR2 IS
36 l_hex_num VARCHAR2(2000);
37 l_quotient NUMBER;
38 l_remainder number;
39 BEGIN
40 l_hex_num := '';
41 l_quotient := p_dec_num;
42 loop
43 l_remainder := mod(l_quotient,16);
44 --dbms_output.put_line('l_remainder := ' || l_remainder);
45 l_quotient := trunc(l_quotient/16);
46 --dbms_output.put_line('l_quotient :=' || l_quotient);
47 l_hex_num := l_hex_num || decnum_to_hexchar(l_remainder);
48 --dbms_output.put_line('l_hex_num :=' || l_hex_num);
49 exit when (l_quotient = 0);
50 end loop;
51 return l_hex_num;
52 END;
53
54
55 END CCT_HEX_UTIL_PUB;