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

Podivné chování Oracle – křížové spojení v rekurzivním CTE funguje s čárkou, ale ne s klauzulí křížového spojení

Pomocí prvního rekurzivního dotazu získáte 5 záznamů, když se pokusíte křížit spojení na rekurzivním výsledku, pokaždé, když iteruje data, pro každou iteraci podle hodnoty 5 se hodnoty zacyklí proti sobě, což má za následek, ORA-32044: cycle detected while executing recursive WITH query chyba. Místo toho musíte rekurzivní výsledek přeškrtnout, jak je uvedeno níže,

with r (x) as (
  select 1 as x from dual
  union all
select x + 1 from r,dual where x < 5
)
select * from r
cross join r; 


  1. Přidání více značek na Google Maps z databáze MySQL

  2. PHP MySQL získá umístění v okruhu uživatele z GPS

  3. Dotaz vrací:ORA-01427 Jednořádkový poddotaz vracející více než jeden řádek

  4. mysql WHERE MATCH PROTI