[Home] [Help]
PACKAGE BODY: APPS.BIM_EDW_INTRCTNS_F_SIZE
Source
1 PACKAGE BODY BIM_EDW_INTRCTNS_F_SIZE AS
2 /* $Header: bimszfib.pls 115.0 2001/03/14 12:02: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 JTF_IH_ACTIVITIES JIA,
16 JTF_IH_INTERACTIONS JII,
17 HZ_PARTY_SITES HPS,
18 EDW_BIM_SOURCE_CODE_DETAILS BSCD,
19 BIM_EDW_INTRCTNS_INC INC,
20 EDW_LOCAL_INSTANCE INST
21 WHERE JIA.INTERACTION_ID = JII.INTERACTION_ID
22 AND JII.PARTY_ID = HPS.PARTY_ID (+)
23 AND HPS.IDENTIFYING_ADDRESS_FLAG(+) = 'Y'
24 AND JIA.ACTIVITY_ID = INC.PRIMARY_KEY
25 AND NVL(JIA.SOURCE_CODE_ID, -999) = BSCD.SOURCE_CODE_ID
26 and
27 JIA.last_update_date between
28 p_from_date and p_to_date
29 );
30
31 BEGIN
32
33 dbms_output.enable(1000000);
34
35 OPEN c_cnt_rows;
36 FETCH c_cnt_rows INTO p_num_rows;
37 CLOSE c_cnt_rows;
38
39
40 dbms_output.put_line('The number of rows is: ' || to_char(p_num_rows));
41 END; -- procedure cnt_rows.
42
43
44 PROCEDURE est_row_len(p_from_date DATE,
45 p_to_date DATE,
46 p_avg_row_len OUT NUMBER) IS
47
48 x_date number := 7;
49 x_total number := 0;
50 x_constant number := 6;
51 x_ACTIVITY_ID NUMBER;
52 x_INTERACTION_ID NUMBER;
53 x_DURATION NUMBER;
54 x_SOURCE_CODE NUMBER;
55
56 x_CAMPAIGN_FK NUMBER;
57 x_EVENT_FK NUMBER;
58 x_MEDIA_CHANNEL_FK NUMBER;
59 x_OFFER_FK NUMBER;
60
61 x_INSTANCE NUMBER;
62
63
64 CURSOR c_1 IS
65 SELECT
66 avg(nvl(vsize( ACTIVITY_ID ), 0)),
67 avg(nvl(vsize( INTERACTION_ID), 0)),
68 avg(nvl(vsize( DURATION), 0)),
69 avg(nvl(vsize( SOURCE_CODE), 0))
70 FROM JTF_IH_ACTIVITIES
71 where last_update_date between
72 p_from_date and p_to_date;
73
74
75
76 CURSOR c_2 IS
77 select
78 avg(nvl(vsize(CAMPAIGN_FK), 0)),
79 avg(nvl(vsize(EVENT_FK), 0)),
80 avg(nvl(vsize(MEDIA_CHANNEL_FK), 0)),
81 avg(nvl(vsize(OFFER_FK), 0))
82 from EDW_BIM_SOURCE_CODE_DETAILS ;
83
84
85 CURSOR c_3 IS
86 select
87 avg(nvl(vsize(INSTANCE_CODE), 0))
88 from EDW_LOCAL_INSTANCE ;
89
90
91
92 BEGIN
93
94 dbms_output.enable(1000000);
95
96 OPEN c_1;
97 FETCH c_1 INTO
98 x_ACTIVITY_ID,
99 x_INTERACTION_ID,
100 x_DURATION,
101 x_SOURCE_CODE;
102
103 CLOSE c_1;
104
105 x_total := 160 +
106 ceil( x_ACTIVITY_ID +1) +
107 ceil( x_INTERACTION_ID +1) +
108 ceil( x_DURATION +1) +
109 ceil( x_SOURCE_CODE +1) ;
110
111
112
113
114 OPEN c_2;
115 FETCH c_2 INTO
116 x_CAMPAIGN_FK,
117 x_EVENT_FK,
118 x_MEDIA_CHANNEL_FK,
119 x_OFFER_FK;
120 CLOSE c_2;
121 x_total := x_total +
122 ceil(x_CAMPAIGN_FK + 1) +
123 ceil(x_EVENT_FK + 1) +
124 ceil(x_MEDIA_CHANNEL_FK + 1) +
125 ceil(x_OFFER_FK + 1);
126
127 OPEN c_3;
128 FETCH c_3 INTO x_INSTANCE;
129 CLOSE c_3;
130
131 x_total := x_total + 8*ceil(x_INSTANCE + 1);
132
133 x_total := x_total + 15*(x_constant + 1);
134
135 -- dbms_output.put_line(' ');
136 dbms_output.put_line('The average row length is : ' || to_char(x_total));
137 p_avg_row_len := x_total;
138
139 END; -- procedure est_row_len.
140
141 END; -- package body BIM_EDW_INTRCTNS_F_SIZE