sql >> Database >  >> RDS >> Oracle

Vreemd Oracle-gedrag - cross join in recursieve CTE werkt met komma maar niet met cross join-clausule

Als u de eerste recursieve query gebruikt, krijgt u 5 records, wanneer u probeert te cross-join op het recursieve resultaat, elke keer dat de gegevens worden herhaald, voor elke iteratie volgens de waarde 5, worden de waarden tegen elkaar herhaald, wat resulteert in, ORA-32044: cycle detected while executing recursive WITH query fout. In plaats daarvan moet je het recursieve resultaat kruisen, zoals hieronder,

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. hoe alleen tijd en geen datum in de database op te slaan via sql-query

  2. Werk het totaal bij op basis van de vorige rij met saldo

  3. MySqlConnection.StateChange wordt nooit opgehaald

  4. Converteer alle records in postgre naar Titlecase, eerste letter hoofdletters