DBA Data[Home] [Help]

PROCEDURE: SYS.DBMS_FEATURE_RULESMANAGER

Source


1 PROCEDURE DBMS_FEATURE_RULESMANAGER
2      ( feature_boolean  OUT  NUMBER,
3        aux_count        OUT  NUMBER,
4        feature_info     OUT  CLOB)
5 AS
6   num_rule_clss        number := 0;
7   num_comp_rulcls       number := 0;
8   max_pmevt_prcmp       number := 0;
9   avg_pmevt_prcmp       number := 0;
10   num_cllt_evts         number := 0;
11   num_pure_expcols      number := 0;
12   num_domain_idxs       number;
13 
14   feature_usage         varchar2(1000);
15   TYPE cursor_t         IS REF CURSOR;
16   cursor_udftype        cursor_t;
17   total_count           number;
18   flag                  number;
19 
20 begin
21   --initialize
22   feature_boolean := 0;
23   aux_count := 0;
24 
25   /* get the number of rule classes */
26   begin
27     execute immediate 'select count(*) from exfsys.adm_rlmgr_rule_classes'
28                           into num_rule_clss;
29   exception
30     when others then
31        num_rule_clss := 0;
32   end;
33 
34   if (num_rule_clss > 0) then
35     /* get the numbers on rule classes with composite events */
36     execute immediate 'select count(*), avg(prmevtprc), max(prmevtprc)
37      from (select count(*) as prmevtprc from
38            exfsys.adm_rlmgr_comprcls_properties
39            group by rule_class_owner, rule_class_name) ' into
40          num_comp_rulcls, avg_pmevt_prcmp, max_pmevt_prcmp;
41 
42     /* rule class with collection events */
43     execute immediate 'select count(*) from
44             exfsys.adm_rlmgr_comprcls_properties
45               where collection_enb = ''Y''' into num_cllt_evts;
46   end if;
47 
48   /* expression columns outside the context of rule classes */
49   execute immediate 'select count(*) from exfsys.adm_expfil_expression_sets
50      where not(expr_column like ''RLM$%'')' into num_pure_expcols;
51 
52   if ((num_rule_clss > 0) OR (num_comp_rulcls > 0) OR (avg_pmevt_prcmp > 0)
53       OR (max_pmevt_prcmp > 0) OR (num_pure_expcols > 0)) then
54     feature_boolean := 1;
55     feature_usage :=
56        'num of rule classes: '||to_char(num_rule_clss) ||', '||
57        'num of rule classes with composite events: '||
58                           to_char(num_comp_rulcls) ||', '||
59        'avg num of primitive events per composite: '||
60                           to_char(avg_pmevt_prcmp) ||', '||
61        'max num of primitive events for a rule class: '||
62                           to_char(max_pmevt_prcmp) ||', '||
63        'num expression columns(user): '||
64                           to_char(num_pure_expcols);
65      feature_info := to_clob(feature_usage);
66   else
67      feature_info := to_clob(
68               'Rules Manager/Expression Filter usage not detected');
69   end if;
70 
71 end;