Boa tarde pessoal,
Estou com uma dúvida... Tenho um SELECT que estava +ou- assim SELECT campo1, campo2, campo3 FROM ( SELECT campo1, campo2, campo3 FROM tabela1 UNION ALL SELECT campo1, campo2, campo FROM tabela2 ) a, ( SELECT campo1, campo2, campo3 FROM tabela3 WHERE campo4 IS NOT NULL ) b WHERE a.campo1 = b.campo1 Bom... quando fazia os SELECTs separadamente eles retornavam valores, porém quando rodava o SELECT por inteiro ele não retornava registro nenhum. Conversando com o DBA vimos que as estatísticas da tabela estavam muuuuuiiiitttoooooo defasadas... usamos um DBMS_STATS.GATHER e voltamos a rodar e dessa vez funcionou... o que poderia ter ocorrido? Pode ter acontecido algum problema por conta da estatísta? O índice poderia estar com valores incorretos? Alguém tem idéia do que poderia ter ocorrido???... Aqui chegamos a conclusão que na verdade o Oracle se perdeu quando tentou montar o plano de execução... mas eu estou um tanto quanto desacreditado com relação a isso... uma coisa é demorar pra rodar e outra coisa é não retornar nada como se não tivesse achado nada... [As partes desta mensagem que não continham texto foram removidas]