Czy baza danych Oracle obsługuje wyrażenia CTE (Common Table Expressions) zgodnie ze standardem ANSI SQL?
Czy baza danych Oracle obsługuje wyrażenia CTE (Common Table Expressions) zgodnie ze standardem ANSI SQL?
Oficjalnie baza danych Oracle nie obsługuje wyrażeń CTE. Niemniej.zawsze jest jakieś "ale".;)
Wyrażenia CTE działają w Oracle DB! Niestety, nie do końca zgodnie ze standardem.
Nie jest obsługiwana klauzula RECURSIVE. Pomimo braku implementacji obsługi klauzuli RECURSIVE, eksperyment wykazuje, że każde wyrażenie CTE w Oracle obsługuje wywołania rekursywne automatycznie!
Przykład:
with zapytanie (n) as (
select 1 from dual
union all
select n+1 from zapytanie where n < 100
) select * from zapytanie;
Mimo, że trudno w tym miejscu zrozumieć politykę vendora, to teoretycznie nie supportowana składnia działa.