DBA Data[Home] [Help]

PROCEDURE: SYS.APS_VALIDATE

Source


1 PROCEDURE aps_validate IS
2    AWok BOOLEAN;
3    OBJok BOOLEAN;
4    x NUMBER; -- dummy output spot
5    junklob CLOB;
6    v_Value varchar2(64);
7    running BOOLEAN;
8 BEGIN
9 
10    begin
11      SELECT value INTO v_Value FROM v$option WHERE parameter = 'OLAP';
12      if v_Value = 'FALSE' then
13        -- set status OPTION OFF
14        sys.dbms_registry.Option_Off('APS');
15        return;
16      end if;
17    exception
18      when OTHERS then
19        null;
20    end;
21 
22    if dbms_aw.olap_running() then
23      running := TRUE;
24    else
25      running := FALSE;
26    end if;
27 
28    -- AWs are valid if we can read an option
29    BEGIN
30      junklob := dbms_aw.INTERP('show SESSCACHE');
31      AWok := TRUE;
32    EXCEPTION
33      WHEN OTHERS THEN
34        AWok := FALSE;
35    END;
36 
37    -- supporting object things
38    BEGIN
39      SELECT 0 INTO x FROM DBA_OBJECTS
40        WHERE STATUS = 'INVALID' AND rownum <=1 AND
41          OWNER='SYS' AND OBJECT_NAME IN
42         ('OLAP_TABLE', 'OLAPIMPL_T', 'OLAP_SRF_T', 'OLAP_NUMBER_SRF',
43          'OLAP_EXPRESSION', 'OLAP_TEXT_SRF', 'OLAP_EXPRESSION_TEXT',
44          'OLAP_BOOL_SRF', 'OLAP_EXPRESSION_BOOL');
45      -- at least one object is invalid so component is invalid
46      OBJok := FALSE;
47    EXCEPTION
48    WHEN NO_DATA_FOUND THEN
49      -- no invalid objects were found so component is valid
50      OBJok := TRUE;
51    END;
52 
53    IF NOT running THEN
54       dbms_aw.shutdown(TRUE);
55    END IF;
56 
57    IF AWok AND OBJok THEN
58      dbms_registry.valid('APS');
59    ELSE
60      dbms_registry.invalid('APS');
61    END IF;
62   END;