Оператор Oracle DELETE с факторизацией подзапросов

Попытка сделать это (работает в SQL Server):

WITH X AS (), Y AS (), Z AS ()
DELETE FROM TBL
WHERE TBL.ID IN (SELECT ID FROM Z);

Это работает в Oracle:

WITH X AS (), Y AS (), Z AS ()
SELECT * FROM TBL
WHERE TBL.ID IN (SELECT ID FROM Z);

Но DELETE не работает: ORA-00928: отсутствует ключевое слово SELECT

Мои подзапросы довольно большие, есть ли другой синтаксис, чтобы заставить это работать?

11
задан OMG Ponies 6 July 2011 в 21:33
поделиться