sql >> Databáze >  >> RDS >> Oracle

Neočekávaný výsledek mapování více sad v Oracle SQL

Je to chyba. Přidání /*+ NO_MERGE */ nápověda k druhému inline pohledu v posledním příkladu vygeneruje očekávané výsledky. Viz tento SQL Fiddle pro příklad. Bez ohledu na dotaz by tato nápověda nikdy neměla změnit výsledky. Existuje několik dalších zdánlivě nesouvisejících změn, které můžete provést a které vygenerují správné výsledky, jako je odstranění některých sloupců nebo přidání nepoužitého ROWNUM uprostřed.

Oracle přepisuje váš dotaz, aby jej optimalizoval, ale něco dělá špatně. Pravděpodobně byste mohli získat nějaké další informace sledováním dotazu, ale pochybuji, že budete schopni problém skutečně vyřešit. Zatím to obejděte a odešlete požadavek na službu společnosti Oracle, aby mohli vytvořit chybu a případně ji opravit.




  1. python mysqldb odstranit řádek

  2. PostgreSQL - dotaz z bash skriptu jako uživatel databáze 'postgres'

  3. MySQL:Najděte chybějící data mezi časovým obdobím

  4. Dotaz MySQL pro počítání nenulových hodnot v jednom řádku