oracle and postgresql update wielu tabel w jednym wywołaniu

0

Witam mam za zadanie napisać skrypt update w 1 zapytaniu który ustawi w poszczególnych powiązanych ze sobą tabel softdel na false.

Napisałem takie coś w postgresql i działa super jednak nie dam rady odpalić w oracle jako że nie jestem jego znawcą :/

Struktura tabel
pierwsza tabela menu:

Id number PK
parent_id number FK to menu.Id
title character varying(250)
softdel boolean default false

2 tabela page:

id as PK
menu_id as FK to menu.id
page_id as FK to page.id
softdel boolean default false

3 tabela article:

id as PK and FK to page.id
softdel boolean default set to false

4 tabela article_lang
partial_id as PK
id as FK to article.id
language character
softdel boolean default set to false

 
with recursive menu_tree (id, parent_id) as (   //rekurencyjne znajdowanie sub menu
   select id, parent_id
   from menu
   where id = 2
   union all 
   select c.id, c.parent_id
   from menu c
     join menu_tree p on p.id = c.parent_id
)
, deleted_menus (menu_id) as (
   update menu
      set softdel = true
   where id in (select id from menu_tree)
   returning menu.id
),
deleted_pages (page_id) as (
   update page
      set softdel = true
   where menu_id in (select menu_id from deleted_menus)
   returning page.id
),
deleted_articles (article_id) as (
   update article
     set softdel = true
   where page_id in (select page_id from deleted_pages)
)
update article_lang
   set softdel = true
where id in (select article_id from deleted_articles);

Jak mogę coś takiego napisać w oracle ?

0

na razie w oracle mam wyszukiwanie wszystkich menu i jego submenu :

 
with q(id, parent_id) as (
  select 
    t1.id , t1.parent_id
    from menu t1
    where t1.id = 454
    
    union all
    select 
    t2.id , t2.parent_id
      from q
      join menu t2 on q.id = t2.parent_id
)
select * from q

1 użytkowników online, w tym zalogowanych: 0, gości: 1