Oracle DELETE statement with subquery factoring

Viewed 22855

Trying to do this (works in SQL Server):

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

This works in Oracle:

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

But the DELETE does not: ORA-00928: missing SELECT keyword

My subqueries are rather large, is there a different syntax to get this to work?

3 Answers
Related