Sérgio Acrescentando ao que você já explicou, a própria documentação do Oracle recomenda o uso do novo padrão ANSI para joins.
Sobre performance, não cheguei a verificar a fundo, mas em pequenos testes vi que aparentemente foram gerados planos de acesso diferentes (sem usar um ORDER BY, a ordem das linhas foi diferente). [ ] André Em 07/02/07, Sérgio Yuassa (FUSAN) <[EMAIL PROTECTED]> escreveu: > > A Oracle era uma das únicas que ainda não tinha o padrão Ansi 92(acho > que é essa a versão), > utilizando o join. A partir da versão 9, ela implementou esse padrão. > > Vc utilizando o outer join antigo(+), por exemplo, não conseguia fazer um > full outer join > (aquela condição que vc pode ter null em uma tabela e/ou null em outra e > vc quer trazer os dados > de ambas, mesmo que seja null). > > E se vc tivesse mais de 1 coluna na condição where, teria que ir colocando > o (+) em cada um. > > No começo eu só conhecia o join do Oracle, e algumas vezes fiz o join no > Visual Fox ou no Access, mas > ainda não entendia como funcionava. > > Depois da versão 9 do Oracle, resolvi que iria aprender. Realmente no > começo parece mais difícil, > mas depois vc nota que ele dá mais um pouco de trabalho para escrever as > cláusulas, mas é MUITO mais > flexível e vc consegue fazer coisas com ele que com o (+) não conseguiria. > > Sobre a questão da performance não sei como ficou, mas num curso do Oracle > o professor disse que > seriam equivalentes. > > Então hoje eu faço tudo com o Ansi 92, mesmo que seja com um inner join, > pois se for para mudar > para outer join é fácil de mudar. Além do que, os outros BD usam assim. Se > for para vc portar para > outro BD, basta mudar pouca coisa. > > -----Mensagem Original----- > De: pso_ura > Para: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Enviada em: terça-feira, 6 de fevereiro de 2007 19:14 > Assunto: [oracle_br] Duvida sobre utilizar inner join ou Where > > Lista > > Gostaria de saber qual a melhor maneira de se montar uma > select. > > Utilizar o inner join ou a clausula Where. > > Exemplo > > SELECT > Eo.Curso, Eo.Curriculo, Eo.Oferta, EO.Etapa, Eo.Inicio, > termino, inicio, ano_inicio, Mes_termino, Ano_termino, > NR_parcelas,OP.Polo > FROM > etapas_ofertas EO inner join ofertas_polos OP ON > (EO.curso = OP.curso AND Eo.Curriculo = OP.Curriculo AND > EO.Oferta = OP.oferta) > > eu usaria > > SELECT > Eo.Curso, Eo.Curriculo, Eo.Oferta, EO.Etapa, Eo.Inicio, > termino, inicio, ano_inicio, Mes_termino, Ano_termino, > NR_parcelas,OP.Polo > FROM > etapas_ofertas EO > ofertas_polos OP ON > where > EO.curso = OP.curso AND > Eo.Curriculo = OP.Curriculo AND > EO.Oferta = OP.oferta > > Qual o melhor? > > Ja tive experiencias com o ACCESS acessando o Oracle, tivemos que > mudar tudo. > > Grato > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]