Reputation: 87
I want to make this query on oracle but I got
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
There is a solution ? Thanks for helping
Upvotes: 0
Views: 130
Reputation: 522762
You could also phrase your delete using a correlated subquery:
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;
Upvotes: 3
Reputation: 13527
Please try merge into -
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;
Upvotes: -1