Хорошо, это оказалось легко исправить со сложным объяснением.
Первой проблемой был устаревший драйвер Oracle. Мы использовали провайдера версии 9, поэтому я обновился до провайдера 10g, предоставленного через наш магазин OIT. Оказывается, у них есть ошибка. Поэтому я удалил его и установил провайдера 10g из Oracle, который обновляется, чтобы исправить ошибку.
Во-вторых, я изменил поле 'fiscal_year' с типа varchar2 на тип числа. Если вы отправляете оператор DELETE с WHERE (или, может быть, с любым условным предложением, я только проверил WHERE), который сравнивается с тестовым полем, то SQL Server должен выполнить удаленное сканирование таблицы, которая в основном получает данные и должна по одному удалить каждую строку. Если вы отправляете оператор DELETE с WHERE, который является числовым, то SQL Server может передать запрос непосредственно в удаленную БД без выполнения удаленного сканирования.
Надеюсь, это кому-нибудь поможет. Я нашел это методом проб и ошибок и кусочками из Интернета. Спасибо за все, что помогло в этом вопросе.