Проверьте числовое значение в задаче потока данных DerivedColumn в службах SSIS - PullRequest
3 голосов
/ 28 января 2009

Есть ли способ проверить, является ли поле числовым в производном столбце / Условное разбиение задачи «Поток данных» в Sql Server Integration Services 2005.

Функциональность должна быть похожа на функцию ISNUMERIC ().

В настоящее время я использую

((DT_NUMERIC,12,0)fieldname= (DT_NUMERIC,12,0)fieldname)

в выражении производного столбца, чтобы проверить, является ли имя поля числовым. Но если имя поля содержит символы, такие как 123ABC вместо цифры 123, вышеприведенное выражение выдает исключение из-за сбоя преобразования и выполнения пакета останавливается.

Если бы у нас была такая функция, как ISNUMERIC (), то нам не нужно было бы делать весь этот цирк. Кто-нибудь знает, есть ли какая-либо функция, подобная этой, чтобы проверить, является ли поле числовым или нет в SSIS.

Ответы [ 2 ]

4 голосов
/ 28 января 2009

Мы используем следующую технику:

  1. В форме свойства для производного компонента столбца вы можете нажать кнопку с пометкой «Настройка вывода ошибок», чтобы вызвать конфигурацию вывода ошибок.

  2. Настройте действия ошибки и усечения для этого столбца (или любого другого столбца) как «Игнорировать сбой»

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

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

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

...