Обратите внимание, что если какие-либо атрибуты имеют значение null, строка считается не IN. То есть, если курсы одинаковы, а учащийся и основной график равны нулю, строка не будет удалена.
Если атрибут, такой как major, может иметь значение NULL и вы хотите, чтобы значение NULL = NULL было истинным, попробуйте:
DELETE
FROM student
WHERE (student.course, NVL(student.major,'sOmeStRinG') )
IN (SELECT schedule.course, NVL(schedule.major,'sOmeStRinG') FROM schedule)