SSIS:Удаление символов из плоского файла
Вопрос
Каков наилучший способ удалить символы из плоских файлов в SSIS?В моем случае мне нужно удалить все кавычки из файла перед обработкой.
Редактировать:
Как я могу запустить исполняемый файл для некоторых файлов из SSIS?Могу ли я каким-то образом использовать исходное соединение в качестве входных данных или мне придется передавать имена файлов в качестве параметров?
Решение
Самый простой способ сделать это - создать компонент сценария "Преобразование" и использовать код для удаления кавычек.
Другие советы
Я сделал это, используя Derived Column Transformation
например ,Если я хочу заменить ', " " , # в ssis, используя производный столбец, я бы написал
Replace(Replace(REPLACE(name,"$"," "), "'", " ")," ","")
Но я чувствую, что, если необходимо отфильтровать 1 или 2 столбца, то такой подход хорош.Если это включает в себя нечто большее, то продолжайте с Script task
Поскольку это то, что вам нужно сделать для всех полей в ваших файлах, я бы рекомендовал выполнять это как первый шаг процесса, а не как операцию в рабочем процессе преобразования.
Вы можете написать свой собственный .СЕТЕВОЙ скрипт и внедрить его в задачу скрипта.Вы также можете вызвать сторонний инструмент или компонент через задачу процесса выполнения.
Например, если у вас есть доступ к командной строке cygwin unix, что-то вроде этого должно выполнить эту работу:
sed s/\"//g data1.txt
Вы можете вызвать исполняемый файл через упомянутый компонент "Выполнить задачу процесса", и вы можете параметризовать его входные данные, задав выражения для атрибутов компонента.Эти выражения могут быть основаны на входных переменных, которые могут быть настроены с помощью файлов конфигурации.(это лишь один из многих способов, предоставляемых SSIS для достижения чего-то подобного)
Если я правильно понял ваш вопрос, вы хотели бы удалить любые кавычки из любого значения столбца, находящегося в вашем текстовом файле?Если это так, вы бы использовали производное преобразование столбца.Вы бы выбрали Заменить "column_name" в раскрывающемся списке Производное имя столбца.Затем вы бы заполнили свойство expression следующим кодом:ЗАМЕНИТЬ( "\"", [имя_столбца] , "")
Надеюсь, это поможет.
Оба решения unclepaul84 и Райана Фоннеттса сработали бы, но лично я больше склоняюсь к unclepaul's, потому что обнаружил, что у меня есть несколько файлов, из которых нужно убрать кавычки, и я могу использовать один и тот же код преобразования для каждого (что приятно).
Это решения, но я считаю, что есть более простая функциональность, встроенная прямо в диспетчер плоских файловых подключений.
На первой вкладке "Общие" вы найдете первое текстовое поле в разделе "Формат", называемое "Квалификатор текста".Введите здесь одну двойную кавычку (или одинарную кавычку, если все столбцы заключены в одинарные кавычки) и нажмите на предварительный просмотр.
Это должно решить вашу проблему!