SSIS: удаление символов из плоского файла - PullRequest
1 голос
/ 03 декабря 2009

Какой лучший способ вырезать символы из плоских файлов в SSIS? В моем случае мне нужно удалить все кавычки из файла перед обработкой.

EDIT:
Как запустить исполняемый файл для некоторых файлов из служб SSIS? Могу ли я как-то использовать исходное соединение в качестве входного или мне нужно передать имена файлов в качестве параметров?

Ответы [ 6 ]

2 голосов
/ 04 декабря 2009

Самый простой способ сделать это - создать компонент сценария «Преобразование» и использовать код для удаления кавычек.

1 голос
/ 17 декабря 2009

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

Вы можете написать свой собственный скрипт .NET и встроить его в задачу «Сценарий». Вы также можете вызвать сторонний инструмент или компонент через задачу «Выполнение процесса».

Например, если у вас есть доступ к командной строке Cygwin Unix, что-то вроде этого должно работать:

sed s/\"//g data1.txt

Вы можете вызвать исполняемый файл с помощью упомянутого компонента «Выполнить задачу процесса» и параметризовать его входные данные, задав выражения для атрибутов компонента. Эти выражения могут быть основаны на входных переменных, которые могут быть настроены с помощью файлов конфигурации. (это только один из многих способов, которые предоставляет SSIS для достижения чего-то подобного)

1 голос
/ 13 декабря 2009

Я использовал Derived Column Transformation

например. Если я хочу заменить ', "", # в ssis, используя производный столбец, я бы написал

Replace(Replace(REPLACE(name,"$"," "), "'", " ")," ","")

Но я чувствую, что если нужно отфильтровать 1 или 2 столбца, тогда этот подход хорош. Если это включает в себя больше, тогда продолжайте с Script task

0 голосов
/ 23 марта 2015

Это решения, но я считаю, что в диспетчере соединений с плоскими файлами проще встроить функциональность.

На первой вкладке «Общие» вы найдете первое текстовое поле в разделе «Формат», которое называется «Текстовый классификатор». Введите здесь одну двойную кавычку (или одну кавычку, если все столбцы заключены в одинарные кавычки) и нажмите на предварительный просмотр.

Это должно решить вашу проблему!

0 голосов
/ 04 декабря 2009

Как решения unclepaul84, так и решения Райана Фоннетса будут работать, но лично я больше обращаюсь к решениям unclepaul, потому что я обнаружил, что знаю, что у меня есть несколько файлов, для которых нужно удалить кавычки, и я могу использовать один и тот же код преобразования для каждого (что приятно).

0 голосов
/ 04 декабря 2009

Если я правильно понимаю ваш вопрос, вы хотели бы удалить любые кавычки из любого значения столбца в вашем текстовом файле? Если это так, вы должны использовать преобразование производного столбца. В раскрывающемся списке «Производное имя столбца» выберите «Заменить имя столбца». Затем вы должны заполнить свойство expression следующим кодом: REPLACE ("\" ", [column_name]," ")

Надеюсь, это поможет.

...