faktoring ile DELETE deyimi (SQL Server çalışır) ORA-00928: eksikOracle alt sorgu bunu çalışılıyor
Benim subqueries oldukça büyüktür SEÇ anahtar kelime, bu işe almak için farklı bir sözdizimi var mı?
faktoring ile DELETE deyimi (SQL Server çalışır) ORA-00928: eksikOracle alt sorgu bunu çalışılıyor
Benim subqueries oldukça büyüktür SEÇ anahtar kelime, bu işe almak için farklı bir sözdizimi var mı?
Sen SELECT deyimi ancak herhangi bir şeyle alt sorgusu Faktoring/CTE kullanamazsınız. From the documentation:
herhangi üst düzey SELECT ifadesinde ve alt sorgular çoğu türlerinde bu maddeyi belirtebilirsiniz.
Bunu yapabilirsiniz:
DELETE FROM tbl WHERE tbl.id IN
(WITH X AS(), Y AS(), Z AS()
SELECT id FROM TBL
WHERE TBL.ID IN (SELECT ID FROM Z));
Eh, en azından sen ad verilmiş tüm sorgular nasılsa açıklamada GELEN görünür olması gerekir. Daha fazla sorun olup olmadığını bilmiyorum, ama bu bir zorunluluktur (ve 00928'in, siz yapmadığınızda gerçekleşen hata olduğuna inanıyorum).
Ben bu işe aldık (ki ben SQL Server çalışmıyor eminim):
DELETE FROM TBL
WHERE TBL.ID IN (
WITH X AS(), Y AS(), Z AS()
SELECT ID FROM Z
);
Cool, bunu hiç denemedim. –
Evet, Oracle kazandı fark SQL Server gibi olacak şekilde kullanılmayan kullanılmayan bir alt soruyu bırakmanıza izin vermeyecektir. –