Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Resultado inesperado do mapeamento multiset no Oracle SQL


É um erro. Adicionando um /*+ NO_MERGE */ dica para a segunda visualização embutida no último exemplo gerará os resultados esperados. Veja este SQL Fiddle Por exemplo. Independentemente da consulta, essa dica nunca deve alterar os resultados. Existem algumas outras alterações aparentemente não relacionadas que você pode fazer para gerar os resultados corretos, como remover algumas das colunas ou adicionar um ROWNUM não utilizado no meio.

A Oracle está reescrevendo sua consulta para otimizá-la, mas está fazendo algo errado. Você provavelmente poderia obter mais informações rastreando a consulta, mas duvido que você consiga realmente corrigir o problema. Contorne-o por enquanto e envie uma solicitação de serviço à Oracle para que eles possam criar um bug e, eventualmente, corrigi-lo.