SSIS - Редактор ограничений предшествования - Выражение - PullRequest
0 голосов
/ 23 апреля 2020

Я создал пакет служб SSIS, чтобы выбрать плоские файлы из папки и импортировать их в базу данных SQL. У них есть 5 файлов комментариев, которые следуют этой схеме именования:

ABS_Comment-name.txt

Мне нужен текст перед дефисом (-).

 @[User::FileName] == "ABS_Comment" 

Примечание. Это выражение будет использоваться в редакторе ограничений предшествования в контейнере для каждого L oop

Дайте мне знать, если вам нужна дополнительная информация

Ответы [ 2 ]

2 голосов
/ 23 апреля 2020

Создание дополнительных переменных SSIS ничего не стоит и значительно упрощает отладку.

Я бы добавил новую переменную SSIS, которая называется BaseFileName, и цель этого - предоставить возможность видеть результаты ваших строковых операций с FileName. Вы не сможете проверить его, если построите его на ограничении объекта / приоритета.

В вашей ситуации вам понадобится взять как можно больше символов слева, и вам нужно выяснить, где дефис существует в строке. Выражение [LEFT][1] или [SUBSTRING][1] удовлетворительно примут первые N символов. Выражение [FINDSTRING][1] - это способ определения позиции искомого символа, дефиса.

LEFT(@[User::FileName, FINDSTRING(@[User::FileName], "-", 1))

Это выражение может быть отключено на единицу, поэтому проверьте полученную строку и добавьте / удалите 1 к результаты FINDSTRING по мере необходимости.

Для пользователей SSIS 2005 LEFT не существует, поэтому перезапись в SUBSTRING выполняется следующим образом (с тем же предостережением о проверке выключения одним)

SUBSTRING(@[User::FileName, 1, FINDSTRING(@[User::FileName], "-", 1))

На данный момент ваше упрощенное ограничение приоритета равно

@[User::BaseFileName] == "ABS_Comment"
1 голос
/ 23 апреля 2020

Billink c дал отличный ответ о том, как получить строку, которую вы ищете, но я думаю, что вы пытаетесь запустить foreach l oop для имен файлов, которые начинаются с ABS_Comment:

Вот a foreach l oop редактор:

enter image description here

Здесь можно установить две вещи:

  1. Установить папку
  2. Установите ваши файлы с маской ABS_Comment * .txt

Затем вы должны установить имя файла в переменную: enter image description here

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...