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