SSIS: массово измените разделитель строк с {LF} на {CR}{LF} в диспетчере соединений с плоскими файлами

Я новичок в SSIS, я создал поток данных с источником oledb и местом назначения плоского файла.

Первоначально файл назначения имел разделитель строк как {LF}, но теперь я должен изменить его как {CR}{LF}. У меня есть около 100 таких файлов.

Я попробовал следующие подходы, второй работает, но это трудоемкий процесс.

  1. Я попытался открыть каждый диспетчер соединений с плоскими файлами и попытаться изменить разделитель строк, но моя визуальная студия не отвечает. Я сделал несколько раз, но не повезло.

  2. Я удалил диспетчер соединений с плоскими файлами и воссоздаю его с правильным разделителем строк, после чего он работает нормально, но моя проблема в том, что я должен делать это более 100 раз.

  3. Я открыл файл.dtsx в текстовом редакторе, и я могу найти разделитель строки заголовка, но не смог найти разделитель строки.

  4. Я пытаюсь изменить разделитель строк в выражении, но он не вступает в силу.

Есть ли лучший способ, которым мы можем просто сделать это?

1 ответ

Решение

Я использовал это, чтобы удалить CRLF

"$text = [IO.File]::ReadAllText(" + @ic + @FullFilePath + @ic + ") -replace " + 
ic2 +"`r`n" + @ic2 + "," + @ic2 +" " + @ic2 +  "; [IO.File]::WriteAllText(" + 
@ic+ @FullFilePath + @ic + ", $text)"

where 
@ic = ' 
@ic2 = """
@FullFilePath is the path returned from the For..Loop container.

Примечание. Я копирую исходный файл в новую папку и обновляю копию, а не изменяю оригинал.

Я ожидаю, что это будет работать для вас, если вы измените этот код:

-replace " +  ic2 +"`r`n" + @ic2 + "," + @ic2 +" " + @ic2 +  "

в

-replace " +  ic2 +"`n" + @ic2 + "," + @ic2 +"`r`n" + @ic2 +  "

Я разработал это в VS 2008. скриншот

Другие вопросы по тегам