반응형
하위 쿼리 팩터링이 있는 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 키워드 누락
제 하위 쿼리가 상당히 큰데, 이 작업을 수행하기 위한 다른 구문이 있습니까?
SELECT 문 이외에는 하위 쿼리 팩터링/CTE를 사용할 수 없습니다.설명서에서 다음을 참조하십시오.
이 절은 모든 최상위 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));
이 작업을 수행하게 되었습니다(SQL Server에서는 작동하지 않습니다.
DELETE FROM TBL
WHERE TBL.ID IN (
WITH X AS (), Y AS (), Z AS ()
SELECT ID FROM Z
);
최소한 모든 별칭 쿼리를 FROM 문에 표시해야 합니다.더 많은 문제가 있는지는 모르겠지만, 그것은 필수입니다(그리고 00928은 그렇지 않을 때 발생하는 오류라고 생각합니다).
언급URL : https://stackoverflow.com/questions/6603171/oracle-delete-statement-with-subquery-factoring
반응형
'programing' 카테고리의 다른 글
asp.net (mvc) 서버가 jquery agax 호출에 오류를 반환하면 오류 콜백에 걸릴 수 있는 방법은 무엇입니까? (0) | 2023.08.14 |
---|---|
매개 변수를 사용하여 Powershell 스크립트에서 실행 파일 실행 (0) | 2023.08.14 |
구문 오류 또는 액세스 위반: 1064, LEFT JOIN 조건의 구문 오류 (0) | 2023.08.14 |
오라클에서 if(조건, 그렇다면, 그렇지 않으면) (0) | 2023.08.14 |
node.js에 있는 문자열의 sha1 해시를 어떻게 얻을 수 있습니까? (0) | 2023.08.14 |