我想在oracle上进行此查询,但是我得到了
00933. 00000 - "SQL command not properly ended"
DELETE FROM DYNAMIC_EXTRACT_DETAILS DED
INNER JOIN DYNAMIC_CATEGORIE_DETAILS DCD ON DCD.CATEGORIE_EXTRACT_ID = :i_id_categorie
WHERE EXTRACT_JOIN = DCD.CATEGORIE_EXTRACT_JOIN AND DED.EXTRACT_ID = :i_id_extract
有解决方案吗?感谢您的帮助
答案 0 :(得分:3)
您还可以使用相关的子查询来表达删除的内容:
DELETE
FROM DYNAMIC_EXTRACT_DETAILS DED
WHERE EXISTS (SELECT 1 FROM
DYNAMIC_CATEGORIE_DETAILS DCD
WHERE DED.EXTRACT_JOIN = DCD.CATEGORIE_EXTRACT_JOIN AND
DCD.CATEGORIE_EXTRACT_ID = :i_id_categorie) AND
EXTRACT_ID = :i_id_extract;
答案 1 :(得分:-1)
请尝试合并到-
MERGE INTO DYNAMIC_EXTRACT_DETAILS
USING DYNAMIC_CATEGORIE_DETAILS
ON (DCD.CATEGORIE_EXTRACT_ID = :i_id_categorie)
WHEN MATCHED THEN
DELETE
WHERE EXTRACT_JOIN = DCD.CATEGORIE_EXTRACT_JOIN AND DED.EXTRACT_ID = :i_id_extract;