sql >> Databasteknik >  >> RDS >> Oracle

Konstigt Oracle-beteende - cross join i rekursiv CTE fungerar med komma men inte med cross join-sats

Med den första rekursiva frågan kommer du att få 5 poster, när du försöker korsa sammanfogning på det rekursiva resultatet, varje gång den itererar data, för varje iteration enligt värdet 5, slingras värdena mot varandra vilket resulterar i, ORA-32044: cycle detected while executing recursive WITH query fel. Istället måste du korsa sammanfogningen utanför det rekursiva resultatet enligt nedan,

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. Hur man krypterar en kolumn i Postgres med Hibernate @ColumnTransformer

  2. Konfigurera STS med JPA 2.0 med PostgreSQL 9.3

  3. Hur kontrollerar jag om en sträng innehåller ett nummer

  4. Hur man skapar PL/SQL-funktion i Oracle Database