Oracle
 sql >> Database >  >> RDS >> Oracle

Risultato imprevisto della mappatura multiset in Oracle SQL

È un bug. Aggiunta di un /*+ NO_MERGE */ suggerimento alla seconda vista in linea nell'ultimo esempio genererà i risultati attesi. Vedi questo SQL Fiddle per un esempio. Indipendentemente dalla query, quel suggerimento non dovrebbe mai modificare i risultati. Ci sono un paio di altre modifiche apparentemente non correlate che puoi apportare che genereranno i risultati corretti, come la rimozione di alcune colonne o l'aggiunta di un ROWNUM inutilizzato nel mezzo.

Oracle sta riscrivendo la tua query per ottimizzarla, ma sta facendo qualcosa di sbagliato. Probabilmente potresti ottenere qualche informazione in più tracciando la query, ma dubito che sarai in grado di risolvere veramente il problema. Per ora aggiralo e invia una richiesta di servizio a Oracle in modo che possano creare un bug ed eventualmente risolverlo.