Службы SSIS: массово измените разделитель строк с {LF} на {CR} {LF} в диспетчере соединений с плоскими файлами - PullRequest
0 голосов
/ 28 июня 2018

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

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 28 июня 2018

Я использовал это, чтобы удалить 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. Скриншот

enter image description here

...