Параметр рваный правый плоский файл отлично подходит для одиночного конечного поля, оканчивающегося CRLF, но когда подавляется любое количество конечных полей, которые являются пустыми, и строка заканчивается досрочно с помощью CRLF, я не нашел альтернативы в SSIS, кроме прочитать несколько столбцов с помощью одного столбца «REMAINDER», а затем использовать преобразование «Производный столбец» с операциями SUBSTRING для извлечения «необязательных» столбцов один за другим.
Одна возможность, которая мне пришла в голову, заключается в том, если есть какой-либо способ пропустить линию через компонент «padder» в SSIS до того, как менеджер соединений получит его. Тогда вы сможете получить все преимущества использования диспетчера соединений для настройки длины входящего столбца. Я всегда мог создать внешнюю программу (или совершенно отдельный поток данных служб SSIS) для передачи файла, который будет заполнять каждую строку пробелами (и с рваной правой стороной) - просто добавляя одинаковое минимальное количество пробелов для учета всех подавленных полей в каждом будет достаточно), но это кажется довольно расточительным по отношению к дисковому пространству, а также требует, чтобы файл был прочитан (и записан) полностью еще раз.
В качестве альтернативы, возможно, существует сторонний компонент источника данных, который будет просто NULL или пустым и будет столбцы автоматически, если строка заканчивается преждевременно.
Есть ли другие варианты?