2015-07-28 2 views
0

Попытка использовать это:Как получить часть имени файла разобран на columnns в SSIS

substring(@[User::v_Filename],37,3) 

Тем не менее, кажется, подстрока может обрабатывать только 20 characaters?

Имя файла выглядит следующим образом: D:\Projects\OTS\MYSSA Dashboard\Data\ATL_20150725Text.csv

Все, что я хочу это ATL Порция

Но когда SSIS переходит к следующему файлу, он может изменить к NYC или DAL, есть около 26 файлы, которые будут обрабатываться из разных регионов.

+0

Существует никаких ограничений на подстроку. Возможно, это файл, в который вы размещаете данные, которые имеют проблемы с форматом. – SouravA

+0

Я не помещаю данные в файл. Все, что я пытаюсь получить, это 3 символа после последней обратной косой черты, или в этом случае 37-й символ + 3. В этом случае ATL. Просто пытаюсь получить эту дату из производного столбца в таблицу. Не пытайтесь переместить данные в файл. –

+0

нормально, но как вы пришли к выводу, что поддерживаются только 20 символов? – SouravA

ответ

0

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

Пример - создать переменную с выражением, а затем нажмите кнопку "оценки":

подстроку ("АБВГДЕЖЗИКЛМНОПРСТУФХЧШЭЮЯ", 25, 2)

Это будет работать нормально.

Учитывая, что функция подстроки работает нормально, должно быть что-то не так с вашей переменной [User :: v_Filename]. Вы уверены, что он настроен правильно? Возможно, вам стоит попробовать запустить BIDS с включенным отладчиком и установить контрольную точку сразу после назначения имени файла и убедиться, что он действительно настроен правильно.

+0

Переменная имела твердое кодированное значение, но это значение изменяется по мере запуска пакета. Что делать, если я просто хотел найти первый символ подчеркивания ATL_ и найти три символа перед подчеркиванием? –

+0

Если он изменяется, вы можете контролировать его, когда он запускается - если вы прорваетесь внутри цикла, вы можете увидеть, какое значение оно имеет каждый раз перед его запуском, тогда вы можете найти, какой файл выдает сообщение об ошибке. –

Смежные вопросы