I need to delete items in on table based on values linked thru 3 other tables. I tried this, which was too slow:
DELETE FROM PP_REQUIREMENT_DETAILS
WHERE RESOURCE_REQUIREMENT_ID IN
(SELECT rr.RESOURCE_REQUIREMENT_ID
FROM PP_RESOURCE_REQUIREMENTS rr
WHERE rr.Task_ID IN
(SELECT TASK_ID
FROM PA_TASKS
WHERE PROJECT_ID IN
(SELECT PROJECT_ID
FROM PA_PROJECTS
WHERE PROJECT_NUMBER IN
( '20519',
'20307',
'20287',
'1747.04',
'1747.03',))))
Then I tried this:
DELETE FROM PP_REQUIREMENT_DETAILS WHERE RESOURCE_REQUIREMENT_ID IN (SELECT rr.RESOURCE_REQUIREMENT_ID
FROM PP_RESOURCE_REQUIREMENTS rr WHERE rr.Task_ID IN (SELECT TASK_ID FROM PA_TASKS WHERE PROJECT_ID IN (SELECT PROJECT_ID FROM PA_PROJECTS WHERE PROJECT_NUMBER = '20519')))/
DELETE FROM PP_REQUIREMENT_DETAILS WHERE RESOURCE_REQUIREMENT_ID IN (SELECT rr.RESOURCE_REQUIREMENT_ID
FROM PP_RESOURCE_REQUIREMENTS rr WHERE rr.Task_ID IN (SELECT TASK_ID FROM PA_TASKS WHERE PROJECT_ID IN (SELECT PROJECT_ID FROM PA_PROJECTS WHERE PROJECT_NUMBER = '20307')))/
DELETE FROM PP_REQUIREMENT_DETAILS WHERE RESOURCE_REQUIREMENT_ID IN (SELECT rr.RESOURCE_REQUIREMENT_ID
FROM PP_RESOURCE_REQUIREMENTS rr WHERE rr.Task_ID IN (SELECT TASK_ID FROM PA_TASKS WHERE PROJECT_ID IN (SELECT PROJECT_ID FROM PA_PROJECTS WHERE PROJECT_NUMBER = '20287')))/
DELETE FROM PP_REQUIREMENT_DETAILS WHERE RESOURCE_REQUIREMENT_ID IN (SELECT rr.RESOURCE_REQUIREMENT_ID
FROM PP_RESOURCE_REQUIREMENTS rr WHERE rr.Task_ID IN (SELECT TASK_ID FROM PA_TASKS WHERE PROJECT_ID IN (SELECT PROJECT_ID FROM PA_PROJECTS WHERE PROJECT_NUMBER = '1747.04')))/
DELETE FROM PP_REQUIREMENT_DETAILS WHERE RESOURCE_REQUIREMENT_ID IN (SELECT rr.RESOURCE_REQUIREMENT_ID
FROM PP_RESOURCE_REQUIREMENTS rr WHERE rr.Task_ID IN (SELECT TASK_ID FROM PA_TASKS WHERE PROJECT_ID IN (SELECT PROJECT_ID FROM PA_PROJECTS WHERE PROJECT_NUMBER = '1747.03')))/
This is multiple delete statements for each value. The slash should probably a semicolon. But, I can't get it to work in SQL PLUS. I need the correct syntax and options to run multiple statements in a block like this in SQL PLUS.
Or - perhaps there's a better way.
Start Free Trial