Функция isdate в производном компоненте ssis - PullRequest
1 голос
/ 06 августа 2009

Есть ли способ проверить столбец Date (например, функцию isDate в TSQL) в выражении производного столбца пакета SSIS после извлечения из Sourcefile перед загрузкой в ​​целевую базу данных?

Спасибо

Ответы [ 5 ]

2 голосов
/ 28 января 2012

У меня была похожая проблема. У меня была дата / время в текстовом файле, но в поле была тире между датой и временем. Я создал производный столбец для замены на тире:

REPLACE([TimeField], "- ", "")

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

2 голосов
/ 06 августа 2009

встроенной функции нет, но вы можете запустить задачу скрипта и использовать код vb.net, чтобы проверить, является ли столбец датой, и работать с ним, как вам хочется ...

1 голос
/ 12 августа 2009

См. Также http://www.sqlis.com/sqlis/post/Expression-Date-Functions.aspx> «Обходной путь IsDate» для техники, которая может быть адаптирована

1 голос
/ 06 августа 2009

Существует задача преобразования данных, которую вы можете добавить. Затем перенаправьте строки по мере необходимости, либо полностью завершив импорт, либо перенаправив строки, которые не работают.

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

0 голосов
/ 17 апреля 2013

Вы можете проверить, имеет ли ваша переменная дату или нет, используя условный оператор, подобный этому:

testDateVariable?true:false

Например, если date > 2, то это true (и укажите дату или отформатируйте дату по своему желанию). Если это false, поставьте null (вы заменяете true на формат даты, а false на null).

Все это находится в ведомой колонке в SSIS.

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