DBA Data[Home] [Help]

PACKAGE BODY: APPS.BIM_EDW_OFFERS_M_SIZE

Source


1 PACKAGE BODY BIM_EDW_OFFERS_M_SIZE AS
2 /* $Header: bimszofb.pls 115.0 2001/03/14 12:03:18 pkm ship       $*/
3 
4 PROCEDURE cnt_rows(p_from_date DATE,
5                    p_to_date DATE,
6                    p_num_rows OUT NUMBER) IS
7 
8 
9 -- v_num_rows        NUMBER := 0;
10 
11 CURSOR c_cnt_rows IS
12    select sum(cnt)
13    from (
14 	select count(*) cnt
15 	from ams_act_offers aao ,
16 	qp_list_headers_vl qlh ,
17 	edw_local_instance inst
18 	WHERE aao.qp_list_header_id = qlh.list_header_id and
19 	((aao.last_update_date > to_date('1000/01/01', 'YYYY/MM/DD'))
20 	or (qlh.last_update_date > to_date('1000/01/01', 'YYYY/MM/DD')))
21         and aao.last_update_date between
22         p_from_date  and  p_to_date
23 	);
24 
25 
26 BEGIN
27 
28   dbms_output.enable(1000000);
29 
30   OPEN c_cnt_rows;
31        FETCH c_cnt_rows INTO p_num_rows;
32   CLOSE c_cnt_rows;
33 
34     dbms_output.put_line('The number of rows is: ' || to_char(p_num_rows));
35 END;  -- procedure cnt_rows.
36 
37 
38 PROCEDURE est_row_len(p_from_date DATE,
39                       p_to_date DATE,
40                       p_avg_row_len OUT NUMBER) IS
41 
42  x_date                 number := 7;
43  x_total                number := 0;
44  x_constant             number := 6;
45 
46 
47  x_activity_offer_id number;
48  x_offer_code number;
49  x_offer_type number;
50  x_primary_offer_flag number;
51 
52  x_list_header_id number;
53  x_name number;
54  x_description number;
55 
56  x_INSTANCE NUMBER;
57 
58 
59   CURSOR c_1 IS
60 	SELECT
61 	avg(nvl(vsize(activity_offer_id ), 0)),
62 	avg(nvl(vsize(offer_code ), 0)),
63 	avg(nvl(vsize(offer_type ), 0)),
64 	avg(nvl(vsize(primary_offer_flag ), 0))
65         FROM ams_act_offers
66         where last_update_date between
67         p_from_date  and  p_to_date;
68 
69 
70   CURSOR c_2 IS
71 	select
72 	 avg(nvl(vsize(INSTANCE_CODE), 0))
73 	 from EDW_LOCAL_INSTANCE ;
74 
75   CURSOR c_3 IS
76 	select
77 	avg(nvl(vsize(name ), 0)),
78 	avg(nvl(vsize(list_header_id ), 0)),
79 	avg(nvl(vsize(description ), 0))
80         FROM qp_list_headers_vl;
81 
82   BEGIN
83 
84     dbms_output.enable(1000000);
85 
86     OPEN c_1;
87       FETCH c_1 INTO
88 	 x_activity_offer_id,
89 	 x_offer_code,
90 	 x_offer_type,
91 	 x_primary_offer_flag;
92 
93     CLOSE c_1;
94 
95     x_total := 57  +
96 	 2*ceil(x_activity_offer_id + 1) +
97 	 ceil(x_offer_code + 1) +
98 	 ceil(x_offer_type + 1) +
99 	 ceil(x_primary_offer_flag + 1);
100 
101     OPEN c_2;
102       FETCH c_2 INTO  x_INSTANCE;
103     CLOSE c_2;
104 
105     x_total := x_total + 2*ceil(x_INSTANCE + 1);
106 
107     OPEN c_3;
108       FETCH c_3 INTO
109 	 x_name,
110 	 x_list_header_id,
111 	 x_description;
112     CLOSE c_3;
113 
114     x_total := x_total +
115                ceil(x_name + 1) +
116 	       ceil(x_list_header_id + 1) +
117 	       ceil(x_description + 1) +
118                15*(x_constant + 1);
119 
120     -- dbms_output.put_line('     ');
121     dbms_output.put_line('The average row length is : ' || to_char(x_total));
122 
123   p_avg_row_len := x_total;
124 
125   END;  -- procedure est_row_len.
126 
127 END;  -- package body BIM_EDW_OFFERS_M_SIZE