DBA Data[Home] [Help]

PROCEDURE: SYS.DBMS_FEATURE_DATABASE_ODM

Source


1 procedure DBMS_FEATURE_DATABASE_ODM
2      ( feature_boolean  OUT  NUMBER,
3        aux_count        OUT  NUMBER,
4        feature_info     OUT  CLOB)
5 AS
6    dm_on              NUMBER;     -- data mining option on
7    model_cnt          NUMBER;
8    dm_usage           varchar2(32767);
9 begin
10   -- initialize
11   feature_boolean   := 0;
12   aux_count         := 0;
13   feature_info      := NULL;
14   model_cnt         := 0;
15 
16   -- check if ODM option is installed
17   select count(*) into dm_on from v$option where
18      parameter = 'Data Mining' and value = 'TRUE';
19 
20   if (dm_on = 0) then
21     return;
22   end if;
23 
24    execute immediate
25          'select count(*), listagg(feature,'';'') within group (order by feature) ' ||
26      'from ( ' ||
27        'with a as ( ' ||
28         'select decode(func ' ||
29           ',1, ''CLASSIFICATION'' ' ||
30           ',2, ''REGRESSION'' ' ||
31           ',3, ''CLUSTERING'' ' ||
32           ',4, ''FEATURE_EXTRACTION''  ' ||
33           ',5, ''ASSOCIATION_RULES''  ' ||
34           ',6, ''ATTRIBUTE_IMPORTANCE''  ' ||
35           ',0)||''(''||   ' ||
36           ' decode(alg ' ||
37           ',1, ''NAIVE_BAYES''  ' ||
38           ',2, ''ADAPTIVE_BAYES_NETWORK''  ' ||
39           ',3, ''DECISION_TREE''   ' ||
40           ',4, ''SUPPORT_VECTOR_MACHINES''  ' ||
41           ',5, ''KMEANS''   ' ||
42           ',6, ''O_CLUSTER''  ' ||
43           ',7, ''NONNEGATIVE_MATRIX_FACTOR''   ' ||
44           ',8, ''GENERALIZED_LINEAR_MODEL''  ' ||
45           ',9, ''APRIORI_ASSOCIATION_RULES''   ' ||
46           ',10, ''MINIMUM_DESCRIPTION_LENGTH''   ' ||
47           ',11, ''SINGULAR_VALUE_DECOMP''   ' ||
48           ',12, ''EXPECTATION_MAXIMIZATION''    ' ||
49           ',0)||'')'' feat from model$  ' ||
50           'where (alg not in (4,5)) or  ' ||
51           '(alg in (4,5) and obj# in (select mod# from modeltab$ where typ#=2))) ' ||
52       'select feat||''(''||count(*)||'')'' feature from a group by feat order by count(*))'
53        into model_cnt, dm_usage;
54 
55     if (model_cnt  > 0)   then     --- feature used
56         feature_boolean := 1;
57         aux_count := model_cnt;
58         feature_info := TO_CLOB(dm_usage);
59     else                        --- feature not used
60         feature_boolean := 0;
61         aux_count := 0;
62         feature_info := null;
63     end if;
64 
65 END DBMS_FEATURE_DATABASE_ODM;