DBA Data[Home] [Help]

PROCEDURE: SYS.ODCIQUERYINFODUMP

Source


1 PROCEDURE ODCIQueryInfoDump(qi ODCIQueryInfo) IS
2 BEGIN
3   if qi is null then
4    dbms_output.put_line('ODCIQueryInfo is null');
5    return;
6   end if;
7 
8   dbms_output.put_line('ODCIQueryInfo');
9   dbms_output.put_line('Flags :');
10 
11   IF (bitand(qi.Flags, ODCIConst.QueryFirstRows) > 0)
12   THEN
13     dbms_output.put_line('     First Rows');
14   END IF;
15 
16   IF (bitand(qi.Flags, ODCIConst.QueryAllRows) > 0)
17   THEN
18     dbms_output.put_line('     All Rows');
19   END IF;
20 
21   IF (bitand(qi.Flags, ODCIConst.QuerySortAsc) > 0)
22   THEN
23     dbms_output.put_line('     Sort Ascending');
24   END IF;
25 
26   IF (bitand(qi.Flags, ODCIConst.QuerySortDesc) > 0)
27   THEN
28     dbms_output.put_line('     Sort Descending');
29   END IF;
30 
31   IF (bitand(qi.Flags, ODCIConst.QueryBlocking) > 0)
32   THEN
33     dbms_output.put_line('     Blocking Operations');
34   END IF;
35 
36   IF qi.AncOps IS NOT NULL AND qi.AncOps.COUNT > 0 THEN
37     dbms_output.put_line('Ancillary Operators  ');
38     FOR i IN qi.AncOps.FIRST..qi.AncOps.LAST LOOP
39        dbms_output.put_line('   Name : '||
40                             qi.AncOps(i).ObjectName);
41        dbms_output.put_line('   Schema :'||
42                             qi.AncOps(i).ObjectSchema);
43     END LOOP;
44   END IF;
45 
46 
47   IF qi.CompInfo IS NOT NULL AND qi.CompInfo.PredInfo IS NOT NULL THEN
48     dbms_output.put_line('Pushed Down Predicates');
49     FOR i IN qi.CompInfo.PredInfo.FIRST..qi.CompInfo.PredInfo.LAST LOOP
50        ODCIColInfoDump(qi.CompInfo.PredInfo(i).ColInfo);
51        dbms_output.put_line('   Flags: '||
52                             qi.CompInfo.PredInfo(i).Flags);
53        IF qi.CompInfo.PredInfo(i).strt IS NOT NULL THEN
54          dbms_output.put_line('   Start: ');
55          ODCIAnyDataDump(qi.CompInfo.PredInfo(i).strt);
56        END IF;
57        IF qi.CompInfo.PredInfo(i).stop IS NOT NULL THEN
58          dbms_output.put_line('   Stop: ');
59          ODCIAnyDataDump(qi.CompInfo.PredInfo(i).stop);
60        END IF;
61 
62     END LOOP;
63   END IF;
64 
65   IF qi.CompInfo IS NOT NULL AND qi.CompInfo.ObyInfo IS NOT NULL THEN
66     dbms_output.put_line('Order By Clause');
67 
68     FOR i IN qi.CompInfo.ObyInfo.FIRST..qi.CompInfo.ObyInfo.LAST LOOP
69        dbms_output.put_line('   ExprType: '||
70                             qi.CompInfo.ObyInfo(i).ExprType);
71        dbms_output.put_line('   Schema : '||
72                             qi.CompInfo.ObyInfo(i).ObjectSchema);
73        dbms_output.put_line('   TableName : '||
74                             qi.CompInfo.ObyInfo(i).TableName);
75        dbms_output.put_line('   ColumnName : '||
76                             qi.CompInfo.ObyInfo(i).ExprName);
77        dbms_output.put_line('   SortOrder : '||
78                             qi.CompInfo.ObyInfo(i).SortOrder);
79     END LOOP;
80   END IF;
81 END;