을 감안와 DELETE 문 (SQL 서버에서 작동) ORA-00928를 : 실종 SELECT 키워드오라클 하위 쿼리는이 작업을 수행하려고
내 하위 쿼리가 다소 크기 때문에 작동하려면 다른 구문이 있습니까?
을 감안와 DELETE 문 (SQL 서버에서 작동) ORA-00928를 : 실종 SELECT 키워드오라클 하위 쿼리는이 작업을 수행하려고
내 하위 쿼리가 다소 크기 때문에 작동하려면 다른 구문이 있습니까?
SELECT 문 이외에는 서브 쿼리 인수/CTE를 사용할 수 없습니다. From the documentation:
당신은 어떤 최상위 SELECT 문에서 서브 쿼리의 대부분 종류의이 절을 지정할 수 있습니다.
당신은이 작업을 수행 할 수 있습니다 :
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));
글쎄, 적어도 앨리어싱 된 쿼리를 어떻게 든 FROM 문에 표시해야합니다. 나는 더 많은 이슈가 있는지 모르지만 그것은 꼭 필요하다 (그리고 나는 00928이 당신이하지 않을 때 일어나는 오류라고 믿는다).
을 나는이 일을하는 데 (이 내가 SQL 서버에서 작동하지 않습니다 확신) :
DELETE FROM TBL
WHERE TBL.ID IN (
WITH X AS(), Y AS(), Z AS()
SELECT ID FROM Z
);
멋지다. 절대로 시도하지 않았다. –
그래, 내가 오라클 원 주목 SQL Server와 같이 사용하지 않는 하위 쿼리를 남겨 둘 수 없습니다. –