I found this strange behaviour in Oracle 12cR2 ( over Linux Red Hat 7 ) with this particular query. It looks to me like it is a bug, but I post the question just in case someone has found a similar issue.
The query is triggered by a Java Application, but I have been able to reproduce the problem in sqlplus.
Tip: Don't ask me about the excessive number of parenthesis, I did it myself and it is coming from the application itself, so I use the same sql text to be 100% accurate.
Query 1
SQL> SELECT *
2 from (SELECT
3 MiscellaneousInformation.miscInfoNo,
4 null AS thirdPartyNumber,
5 COALESCE(ProposalAgreement.id,
6 Agreement.id,
7 0) AS alfaAgreementIdentifier,
8 COALESCE(ProposalSchedule.id,
9 Schedule.id,
10 0) AS alfaScheduleIdentifier,
11 COALESCE(ProposalAgreement.agreementNumber, Agreement.agreementNumber) AS AGREEMENTNUMBER,
12 --ProposalAgreement.agreementNumber an1, Agreement.agreementNumber an2,
13 ProposalAgreement.agreementNumber AS AGREEMENTNUMBER0,
14 --CASE WHEN Agreement.agreementNumber IS NOT NULL THEN Agreement.agreementNumber ELSE ProposalAgreement.agreementNumber END AS AGREEMENTNUMBER,
15 COALESCE(Schedule.scheduleNumber,
16 ProposalSchedule.scheduleNumber,
17 0),
18 COALESCE(Schedule.terminationNumber,
19 ProposalSchedule.terminationNumber,
20 0),
21 0 AS lineOfCreditNumber,
22 0 AS securityIdentifier,
23 0 AS caseIdSequenceNumber,
24 MiscellaneousInformation.informationType,
25 MiscellaneousInformation.detail,
26 MiscellaneousInformation.valueAmount,
27 MiscellaneousInformation.dateField,
28 MiscellaneousInformation.valueCurrency,
29 MiscellaneousInfoListValue.description,
30 MiscellaneousInformation.ownerDiscriminator,
31 MiscellaneousInformation.ownerEntityId
32 FROM
33 ALFATS.MiscellaneousInformation
34 LEFT OUTER JOIN
35 ALFATS.MiscellaneousInfoListValue
36 ON (
37 (
38 MiscellaneousInformation.informationType = MiscellaneousInfoListValue.informationType
39 )
40 AND (
41 MiscellaneousInformation.detail = MiscellaneousInfoListValue.code
42 )
43 )
44 LEFT OUTER JOIN
45 ALFATS.ScheduleEntity
46 ON (
47 MiscellaneousInformation.ownerEntityId = ScheduleEntity.entityId
48 )
49 LEFT OUTER JOIN
50 ALFATS.Schedule
51 ON (
52 (
53 Schedule.id = ScheduleEntity.primaryScheduleId
54 )
55 AND (
56 Schedule.terminationNumber IN (
57 0,
58 1)))
59 LEFT OUTER JOIN
60 ALFATS.ProposalSchedule
61 ON (
62 MiscellaneousInformation.ownerEntityId = ProposalSchedule.entityId
63 )
64 LEFT OUTER JOIN
65 ALFATS.Agreement
66 ON (
67 (
68 MiscellaneousInformation.ownerEntityId = Agreement.entityId
69 )
70 OR (
71 Schedule.agreementNumber = Agreement.agreementNumber
72 )
73 OR (
74 ProposalSchedule.agreementNumber = Agreement.agreementNumber
75 )
76 )
77 LEFT OUTER JOIN
78 ALFATS.ProposalAgreement
79 ON (
80 (
81 MiscellaneousInformation.ownerEntityId = ProposalAgreement.entityId
82 )
83 OR (
84 ProposalSchedule.agreementNumber = ProposalAgreement.agreementNumber
85 )
86 )
87 WHERE
88 (
89 (
90 (
91 (
92 MiscellaneousInformation.ownerDiscriminator = N'AGR'
93 )
94 OR (
95 MiscellaneousInformation.ownerDiscriminator = N'SCH'
96 )
97 )
98 AND (
99 NOT (EXISTS (SELECT
100 1
101 FROM
102 ALFATS.MiscellaneousInformation miscInfoInner
103 WHERE
104 ((miscInfoInner.ownerEntityId = MiscellaneousInformation.ownerEntityId)
105 AND (miscInfoInner.informationType = MiscellaneousInformation.informationType)
106 AND (miscInfoInner.miscInfoNo > MiscellaneousInformation.miscInfoNo))))
107 )
108 ) AND (
109 MOD(MiscellaneousInformation.miscInfoNo, 20) = 13
110 )
111 ) )
112 WHERE OWNERDISCRIMINATOR = 'AGR'
113 AND agreementnumber IS not NULL
114 --AND agreementnumber0 IS NOT NULL
115*
no rows selected
Elapsed: 00:03:07.56
Execution Plan
----------------------------------------------------------
Plan hash value: 70829564
------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 671 | 370K| 210K (1)| 00:00:09 |
|* 1 | FILTER | | | | | |
| 2 | MERGE JOIN OUTER | | 671 | 370K| 210K (1)| 00:00:09 |
| 3 | MERGE JOIN OUTER | | 336 | 173K| 208K (1)| 00:00:09 |
| 4 | NESTED LOOPS OUTER | | 112 | 55440 | 207K (1)| 00:00:09 |
| 5 | NESTED LOOPS OUTER | | 112 | 51296 | 207K (1)| 00:00:09 |
|* 6 | HASH JOIN OUTER | | 112 | 42448 | 206K (1)| 00:00:09 |
| 7 | NESTED LOOPS OUTER | | 112 | 35280 | 206K (1)| 00:00:09 |
| 8 | NESTED LOOPS ANTI | | 112 | 23072 | 206K (1)| 00:00:09 |
|* 9 | TABLE ACCESS FULL | MISCELLANEOUSINFORMATION | 11184 | 1299K| 173K (1)| 00:00:07 |
|* 10 | INDEX RANGE SCAN | MISCELLANEOUSINFORMATION_L2 | 13M| 1135M| 3 (0)| 00:00:01 |
| 11 | TABLE ACCESS BY INDEX ROWID| PROPOSALSCHEDULE | 1 | 109 | 2 (0)| 00:00:01 |
|* 12 | INDEX UNIQUE SCAN | PROPOSALSCHEDULE_N2 | 1 | | 1 (0)| 00:00:01 |
| 13 | TABLE ACCESS FULL | MISCELLANEOUSINFOLISTVALUE | 699 | 44736 | 6 (0)| 00:00:01 |
| 14 | TABLE ACCESS BY INDEX ROWID | SCHEDULEENTITY | 1 | 79 | 2 (0)| 00:00:01 |
|* 15 | INDEX UNIQUE SCAN | SCHEDULEENTITY_N2 | 1 | | 1 (0)| 00:00:01 |
|* 16 | TABLE ACCESS BY INDEX ROWID | SCHEDULE | 1 | 37 | 1 (0)| 00:00:01 |
|* 17 | INDEX UNIQUE SCAN | SCHEDULE_PK | 1 | | 0 (0)| 00:00:01 |
| 18 | BUFFER SORT | | 3 | 105 | 208K (1)| 00:00:09 |
| 19 | VIEW | VW_LAT_B4E6951E | 3 | 105 | 9 (0)| 00:00:01 |
| 20 | VIEW | VW_ORE_A774FCAE | 3 | 105 | 9 (0)| 00:00:01 |
| 21 | UNION-ALL | | | | | |
| 22 | TABLE ACCESS BY INDEX ROWID| AGREEMENT | 1 | 104 | 3 (0)| 00:00:01 |
|* 23 | INDEX UNIQUE SCAN | AGREEMENT_N2 | 1 | | 2 (0)| 00:00:01 |
|* 24 | TABLE ACCESS BY INDEX ROWID| AGREEMENT | 1 | 104 | 3 (0)| 00:00:01 |
|* 25 | INDEX UNIQUE SCAN | AGREEMENT_NK | 1 | | 2 (0)| 00:00:01 |
|* 26 | TABLE ACCESS BY INDEX ROWID| AGREEMENT | 1 | 104 | 3 (0)| 00:00:01 |
|* 27 | INDEX UNIQUE SCAN | AGREEMENT_NK | 1 | | 2 (0)| 00:00:01 |
| 28 | BUFFER SORT | | 2 | 70 | 210K (1)| 00:00:09 |
| 29 | VIEW | VW_LAT_B4E6951E | 2 | 70 | 6 (0)| 00:00:01 |
| 30 | VIEW | VW_ORE_E1C15686 | 2 | 70 | 6 (0)| 00:00:01 |
| 31 | UNION-ALL | | | | | |
| 32 | TABLE ACCESS BY INDEX ROWID | PROPOSALAGREEMENT | 1 | 104 | 3 (0)| 00:00:01 |
|* 33 | INDEX UNIQUE SCAN | PROPOSALAGREEMENT_N2 | 1 | | 2 (0)| 00:00:01 |
|* 34 | TABLE ACCESS BY INDEX ROWID | PROPOSALAGREEMENT | 1 | 104 | 3 (0)| 00:00:01 |
|* 35 | INDEX UNIQUE SCAN | PROPOSALAGREEMENT_NK | 1 | | 2 (0)| 00:00:01 |
------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(COALESCE("ITEM_2","ITEM_2") IS NOT NULL)
6 - access("MISCELLANEOUSINFORMATION"."INFORMATIONTYPE"="MISCELLANEOUSINFOLISTVALUE"."INFORMATIONTYPE"(
+) AND "MISCELLANEOUSINFORMATION"."DETAIL"="MISCELLANEOUSINFOLISTVALUE"."CODE"(+))
9 - filter("MISCELLANEOUSINFORMATION"."OWNERDISCRIMINATOR"=U'AGR' AND
MOD("MISCELLANEOUSINFORMATION"."MISCINFONO",20)=13)
10 - access("MISCINFOINNER"."OWNERENTITYID"="MISCELLANEOUSINFORMATION"."OWNERENTITYID" AND
"MISCINFOINNER"."INFORMATIONTYPE"="MISCELLANEOUSINFORMATION"."INFORMATIONTYPE" AND
"MISCINFOINNER"."MISCINFONO">"MISCELLANEOUSINFORMATION"."MISCINFONO")
12 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="PROPOSALSCHEDULE"."ENTITYID"(+))
15 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="SCHEDULEENTITY"."ENTITYID"(+))
16 - filter("SCHEDULE"."TERMINATIONNUMBER"(+)=0 OR "SCHEDULE"."TERMINATIONNUMBER"(+)=1)
17 - access("SCHEDULE"."ID"(+)="SCHEDULEENTITY"."PRIMARYSCHEDULEID")
23 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="AGREEMENT"."ENTITYID")
24 - filter(LNNVL("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="AGREEMENT"."ENTITYID"))
25 - access("SCHEDULE"."AGREEMENTNUMBER"="AGREEMENT"."AGREEMENTNUMBER")
26 - filter(LNNVL("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="AGREEMENT"."ENTITYID"))
27 - access("PROPOSALSCHEDULE"."AGREEMENTNUMBER"="AGREEMENT"."AGREEMENTNUMBER")
filter(LNNVL("SCHEDULE"."AGREEMENTNUMBER"="AGREEMENT"."AGREEMENTNUMBER"))
33 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="PROPOSALAGREEMENT"."ENTITYID")
34 - filter(LNNVL("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="PROPOSALAGREEMENT"."ENTITYID"))
35 - access("PROPOSALSCHEDULE"."AGREEMENTNUMBER"="PROPOSALAGREEMENT"."AGREEMENTNUMBER")
Statistics
----------------------------------------------------------
14 recursive calls
0 db block gets
1319465 consistent gets
931422 physical reads
0 redo size
1846 bytes sent via SQL*Net to client
597 bytes received via SQL*Net from client
1 SQL*Net roundtrips to/from client
112034 sorts (memory)
0 sorts (disk)
0 rows processed
So the query 1 returns 0 rows. Well, let's just change the select * from
for just to get three columns of the table.
Query 2
SQL> 1 SELECT ownerDiscriminator , agreementnumber, agreementnumber0
2 from (SELECT
3 MiscellaneousInformation.miscInfoNo,
4 null AS thirdPartyNumber,
5 COALESCE(ProposalAgreement.id,
6 Agreement.id,
7 0) AS alfaAgreementIdentifier,
8 COALESCE(ProposalSchedule.id,
9 Schedule.id,
10 0) AS alfaScheduleIdentifier,
11 COALESCE(ProposalAgreement.agreementNumber, Agreement.agreementNumber) AS AGREEMENTNUMBER,
12 --ProposalAgreement.agreementNumber an1, Agreement.agreementNumber an2,
13 ProposalAgreement.agreementNumber AS AGREEMENTNUMBER0,
14 --CASE WHEN Agreement.agreementNumber IS NOT NULL THEN Agreement.agreementNumber ELSE ProposalAgreement.agreementNumber END AS AGREEMENTNUMBER,
15 COALESCE(Schedule.scheduleNumber,
16 ProposalSchedule.scheduleNumber,
17 0),
18 COALESCE(Schedule.terminationNumber,
19 ProposalSchedule.terminationNumber,
20 0),
21 0 AS lineOfCreditNumber,
22 0 AS securityIdentifier,
23 0 AS caseIdSequenceNumber,
24 MiscellaneousInformation.informationType,
25 MiscellaneousInformation.detail,
26 MiscellaneousInformation.valueAmount,
27 MiscellaneousInformation.dateField,
28 MiscellaneousInformation.valueCurrency,
29 MiscellaneousInfoListValue.description,
30 MiscellaneousInformation.ownerDiscriminator,
31 MiscellaneousInformation.ownerEntityId
32 FROM
33 ALFATS.MiscellaneousInformation
34 LEFT OUTER JOIN
35 ALFATS.MiscellaneousInfoListValue
36 ON (
37 (
38 MiscellaneousInformation.informationType = MiscellaneousInfoListValue.informationType
39 )
40 AND (
41 MiscellaneousInformation.detail = MiscellaneousInfoListValue.code
42 )
43 )
44 LEFT OUTER JOIN
45 ALFATS.ScheduleEntity
46 ON (
47 MiscellaneousInformation.ownerEntityId = ScheduleEntity.entityId
48 )
49 LEFT OUTER JOIN
50 ALFATS.Schedule
51 ON (
52 (
53 Schedule.id = ScheduleEntity.primaryScheduleId
54 )
55 AND (
56 Schedule.terminationNumber IN (
57 0,
58 1)))
59 LEFT OUTER JOIN
60 ALFATS.ProposalSchedule
61 ON (
62 MiscellaneousInformation.ownerEntityId = ProposalSchedule.entityId
63 )
64 LEFT OUTER JOIN
65 ALFATS.Agreement
66 ON (
67 (
68 MiscellaneousInformation.ownerEntityId = Agreement.entityId
69 )
70 OR (
71 Schedule.agreementNumber = Agreement.agreementNumber
72 )
73 OR (
74 ProposalSchedule.agreementNumber = Agreement.agreementNumber
75 )
76 )
77 LEFT OUTER JOIN
78 ALFATS.ProposalAgreement
79 ON (
80 (
81 MiscellaneousInformation.ownerEntityId = ProposalAgreement.entityId
82 )
83 OR (
84 ProposalSchedule.agreementNumber = ProposalAgreement.agreementNumber
85 )
86 )
87 WHERE
88 (
89 (
90 (
91 (
92 MiscellaneousInformation.ownerDiscriminator = N'AGR'
93 )
94 OR (
95 MiscellaneousInformation.ownerDiscriminator = N'SCH'
96 )
97 )
98 AND (
99 NOT (EXISTS (SELECT
100 1
101 FROM
102 ALFATS.MiscellaneousInformation miscInfoInner
103 WHERE
104 ((miscInfoInner.ownerEntityId = MiscellaneousInformation.ownerEntityId)
105 AND (miscInfoInner.informationType = MiscellaneousInformation.informationType)
106 AND (miscInfoInner.miscInfoNo > MiscellaneousInformation.miscInfoNo))))
107 )
108 ) AND (
109 MOD(MiscellaneousInformation.miscInfoNo, 20) = 13
110 )
111 ) )
112 WHERE OWNERDISCRIMINATOR = 'AGR'
113 AND agreementnumber IS not NULL
114* --AND agreementnumber0 IS NOT NULL
115 ;
56017 rows selected.
Elapsed: 00:00:25.63
Execution Plan
----------------------------------------------------------
Plan hash value: 2355278442
-------------------------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
-------------------------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 671 | 309K| 210K (1)| 00:00:09 |
|* 1 | FILTER | | | | | |
| 2 | MERGE JOIN OUTER | | 671 | 309K| 210K (1)| 00:00:09 |
| 3 | MERGE JOIN OUTER | | 336 | 147K| 208K (1)| 00:00:09 |
| 4 | NESTED LOOPS OUTER | | 112 | 47936 | 207K (1)| 00:00:09 |
| 5 | NESTED LOOPS OUTER | | 112 | 44128 | 207K (1)| 00:00:09 |
|* 6 | HASH JOIN RIGHT OUTER | | 112 | 35280 | 206K (1)| 00:00:09 |
| 7 | INDEX FAST FULL SCAN | MISCELLANEOUSINFOLISTVALUE_1 | 699 | 13281 | 3 (0)| 00:00:01 |
| 8 | NESTED LOOPS OUTER | | 112 | 33152 | 206K (1)| 00:00:09 |
| 9 | NESTED LOOPS ANTI | | 112 | 22176 | 206K (1)| 00:00:09 |
|* 10 | TABLE ACCESS FULL | MISCELLANEOUSINFORMATION | 11184 | 1212K| 173K (1)| 00:00:07 |
|* 11 | INDEX RANGE SCAN | MISCELLANEOUSINFORMATION_L2 | 13M| 1135M| 3 (0)| 00:00:01 |
| 12 | TABLE ACCESS BY INDEX ROWID| PROPOSALSCHEDULE | 1 | 98 | 2 (0)| 00:00:01 |
|* 13 | INDEX UNIQUE SCAN | PROPOSALSCHEDULE_N2 | 1 | | 1 (0)| 00:00:01 |
| 14 | TABLE ACCESS BY INDEX ROWID | SCHEDULEENTITY | 1 | 79 | 2 (0)| 00:00:01 |
|* 15 | INDEX UNIQUE SCAN | SCHEDULEENTITY_N2 | 1 | | 1 (0)| 00:00:01 |
|* 16 | TABLE ACCESS BY INDEX ROWID | SCHEDULE | 1 | 34 | 1 (0)| 00:00:01 |
|* 17 | INDEX UNIQUE SCAN | SCHEDULE_PK | 1 | | 0 (0)| 00:00:01 |
| 18 | BUFFER SORT | | 3 | 66 | 208K (1)| 00:00:09 |
| 19 | VIEW | VW_LAT_B4E6951E | 3 | 66 | 9 (0)| 00:00:01 |
| 20 | VIEW | VW_ORE_A774FCAE | 3 | 66 | 9 (0)| 00:00:01 |
| 21 | UNION-ALL | | | | | |
| 22 | TABLE ACCESS BY INDEX ROWID| AGREEMENT | 1 | 98 | 3 (0)| 00:00:01 |
|* 23 | INDEX UNIQUE SCAN | AGREEMENT_N2 | 1 | | 2 (0)| 00:00:01 |
|* 24 | TABLE ACCESS BY INDEX ROWID| AGREEMENT | 1 | 98 | 3 (0)| 00:00:01 |
|* 25 | INDEX UNIQUE SCAN | AGREEMENT_NK | 1 | | 2 (0)| 00:00:01 |
|* 26 | TABLE ACCESS BY INDEX ROWID| AGREEMENT | 1 | 98 | 3 (0)| 00:00:01 |
|* 27 | INDEX UNIQUE SCAN | AGREEMENT_NK | 1 | | 2 (0)| 00:00:01 |
| 28 | BUFFER SORT | | 2 | 44 | 210K (1)| 00:00:09 |
| 29 | VIEW | VW_LAT_B4E6951E | 2 | 44 | 6 (0)| 00:00:01 |
| 30 | VIEW | VW_ORE_E1C15686 | 2 | 44 | 6 (0)| 00:00:01 |
| 31 | UNION-ALL | | | | | |
| 32 | TABLE ACCESS BY INDEX ROWID | PROPOSALAGREEMENT | 1 | 98 | 3 (0)| 00:00:01 |
|* 33 | INDEX UNIQUE SCAN | PROPOSALAGREEMENT_N2 | 1 | | 2 (0)| 00:00:01 |
|* 34 | TABLE ACCESS BY INDEX ROWID | PROPOSALAGREEMENT | 1 | 98 | 3 (0)| 00:00:01 |
|* 35 | INDEX UNIQUE SCAN | PROPOSALAGREEMENT_NK | 1 | | 2 (0)| 00:00:01 |
-------------------------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
1 - filter(COALESCE("ITEM_2","ITEM_2") IS NOT NULL)
6 - access("MISCELLANEOUSINFORMATION"."INFORMATIONTYPE"="MISCELLANEOUSINFOLISTVALUE"."INFORMATIONTYPE"(+
) AND "MISCELLANEOUSINFORMATION"."DETAIL"="MISCELLANEOUSINFOLISTVALUE"."CODE"(+))
10 - filter("MISCELLANEOUSINFORMATION"."OWNERDISCRIMINATOR"=U'AGR' AND
MOD("MISCELLANEOUSINFORMATION"."MISCINFONO",20)=13)
11 - access("MISCINFOINNER"."OWNERENTITYID"="MISCELLANEOUSINFORMATION"."OWNERENTITYID" AND
"MISCINFOINNER"."INFORMATIONTYPE"="MISCELLANEOUSINFORMATION"."INFORMATIONTYPE" AND
"MISCINFOINNER"."MISCINFONO">"MISCELLANEOUSINFORMATION"."MISCINFONO")
13 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="PROPOSALSCHEDULE"."ENTITYID"(+))
15 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="SCHEDULEENTITY"."ENTITYID"(+))
16 - filter("SCHEDULE"."TERMINATIONNUMBER"(+)=0 OR "SCHEDULE"."TERMINATIONNUMBER"(+)=1)
17 - access("SCHEDULE"."ID"(+)="SCHEDULEENTITY"."PRIMARYSCHEDULEID")
23 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="AGREEMENT"."ENTITYID")
24 - filter(LNNVL("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="AGREEMENT"."ENTITYID"))
25 - access("SCHEDULE"."AGREEMENTNUMBER"="AGREEMENT"."AGREEMENTNUMBER")
26 - filter(LNNVL("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="AGREEMENT"."ENTITYID"))
27 - access("PROPOSALSCHEDULE"."AGREEMENTNUMBER"="AGREEMENT"."AGREEMENTNUMBER")
filter(LNNVL("SCHEDULE"."AGREEMENTNUMBER"="AGREEMENT"."AGREEMENTNUMBER"))
33 - access("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="PROPOSALAGREEMENT"."ENTITYID")
34 - filter(LNNVL("MISCELLANEOUSINFORMATION"."OWNERENTITYID"="PROPOSALAGREEMENT"."ENTITYID"))
35 - access("PROPOSALSCHEDULE"."AGREEMENTNUMBER"="PROPOSALAGREEMENT"."AGREEMENTNUMBER")
Statistics
----------------------------------------------------------
14 recursive calls
0 db block gets
1437831 consistent gets
637478 physical reads
0 redo size
2796818 bytes sent via SQL*Net to client
41682 bytes received via SQL*Net from client
3736 SQL*Net roundtrips to/from client
112034 sorts (memory)
0 sorts (disk)
56017 rows processed
How is this even possible ? Am I not losing my mind, right ?
As is a testing environment, I did flush buffer cache and shared pool, checked looking for corruption and even bounce the database. So far, nothing.
Short summary, using select * from
gives me 0 rows, using select field, field, field from
gives me the right number of rows.
Do you think that this is a bug or can be something different which I am not considering ?
P.S. adding an order by also changes the number of rows returned.
UPDATE
Moving the table segments and rebuilding all their indexes did not solve anything either. I tried even using datapump to export the schema, drop the tablespace, rebuild the tablespace in a different ASM disk and importing back. No effect.
So, it is clear to me that this is a BUG in 12.2, but I can't find exactly which one.