РЕДАКТИРОВАТЬ: я пересмотрел ответ, чтобы удалить строки с количеством столбцов, превышающим ожидаемое:
Выполните синтаксический анализ SSIS с источником компонента сценария. В компоненте сценария:
-Выберите диспетчер соединений с плоскими файлами под диспетчерами соединений, ниже я оставил его с именем «Соединение»
-Добавьте столбцы в выходной буфер и настройте их типы данных. В моем примере они названы «Первый» и «Второй»
. В сценарии добавьте ссылку на System.IO и выполните что-то вроде следующего, которое ищет ожидаемое количество столбцов и добавляет только строка в буфер, если он соответствует этим критериям:
using System.IO;
...
public override void CreateNewOutputRows()
{
var expectedNumOfColumns = 2;
using (StreamReader sr = new StreamReader(Connections.Connection.ConnectionString))
{
string line;
while((line = sr.ReadLine()) != null)
{
var parsedLine = line.Split(',');
if (parsedLine.Length == expectedNumOfColumns)
{
Output0Buffer.AddRow();
Output0Buffer.First = parsedLine[0];
Output0Buffer.Second = parsedLine[1];
}
}
}
}