Проверить числовое значение в задаче потока данных DerivedColumn в SSIS

StackOverflow https://stackoverflow.com/questions/488463

Вопрос

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

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

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

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

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

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

Это было полезно?

Решение

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

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

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top