это преобразование потока данных ssis правильно? - PullRequest
0 голосов
/ 19 января 2009

Я пытаюсь извлечь код отслеживания подстроки в точку разделителя ~~. Так, например:

www.test.com ~~ 34235645463544563554 * * +1004

Я хочу вернуться:

www.test.com

Я использую:

SUBSTRING(trackingCode,1,FINDSTRING(trackingCode,"~~",1) - 1)

Но это не работает, и я получаю сообщение об ошибке:

Ошибка: 0xC0049067 при импорте файла из файла, производный столбец [1562]: ошибка при оценке функции.

есть идеи? если я заменю FINDSTRING на числовое значение, то это сработает.

Ответы [ 3 ]

2 голосов
/ 20 января 2009

Ваши данные, вероятно, не соответствуют вашим ожиданиям.

Доверяй, но проверяй.

Я бы не стал использовать производное преобразование столбцов для чего-либо, кроме тривиальных преобразований для данных, которые, как вы знаете (посредством прямого тестирования), всегда будут соответствовать ожиданиям. Формулы трудно читать в однострочном формате в производных столбцах xforms, и вы получаете очень мало контроля и возможность пробовать различные параметры анализа и несколько режимов сбоя / восстановления.

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

1 голос
/ 17 ноября 2010

Это должно работать:

SUBSTRING([trackingCode],1,(FINDSTRING([trackingCode],"\~~",1) - 1))

0 голосов
/ 19 января 2009

Вы уверены, что каждая строка имеет конечный номер? Если нет, то что-то вроде этого может помочь:

SUBSTRING(trackingCode+"~~",1,FINDSTRING(trackingCode,"~~",1) - 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...