sql >> Database teknologi >  >> RDS >> Oracle

Mærkelig Oracle-adfærd - cross join i rekursiv CTE fungerer med komma, men ikke med cross join-klausul

Ved at bruge den første rekursive forespørgsel, vil du få 5 poster, når du forsøger at krydse join på det rekursive resultat, hver gang det itererer dataene, for hver iteration ifølge værdien 5, bliver værdierne sløjfet mod hinanden, hvilket resulterer i, ORA-32044: cycle detected while executing recursive WITH query fejl. I stedet skal du krydse join uden for det rekursive resultat som nedenfor,

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. Hvad er SQL Server-ækvivalenten for Oracles DBMS_ASSERT?

  2. CAST() vs TRY_CAST() i SQL Server:Hvad er forskellen?

  3. Hvordan bruger jeg mysql source-kommandoen med en mysql-variabel?

  4. MSSQL-forbindelse ved hjælp af PHP