T-SQL: как регистрировать ошибочные записи во время импорта - PullRequest
0 голосов
/ 26 мая 2009

Я делаю импорт и конвертирую столбцы в другие типы данных. Во время импорта я проверяю, могу ли я преобразовать значения, хранящиеся в столбцах, в целевые типы данных. Если нет, я ставлю значение по умолчанию, например, Я преобразовываю строку в int, и когда я не могу преобразовать строку, я вставляю -1.

В этот момент было бы здорово, если бы я мог занести ошибочные записи в отдельную таблицу, например вместо анализируемой строки «1234» приходит «xze», поэтому я помещаю -1 в целевую таблицу и «xze» в таблицу журнала. Возможно ли это с (T-) SQL?

Приветствия,

Andreas

Ответы [ 2 ]

2 голосов
/ 26 мая 2009

Это также очень легко сделать с задачами потока данных служб SSIS. Любые из шагов преобразования данных или поиска, которые вы можете попробовать, имеют вывод «success» и вывод «error». Вы просто направляете все выходы ошибок в преобразование "union" и оттуда в общую таблицу ошибок. Результат всех успехов попадет в вашу таблицу «успехов». Вы даже можете добавить дополнительные сведения в таблицу ошибок, чтобы получить четкие сообщения об ошибках.

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

0 голосов
/ 26 мая 2009

Если у вас есть промежуточная таблица, вы можете отфильтровать хорошие вещи в финальной таблице и выполнить объединение (НЕ СУЩЕСТВУЕТ), чтобы найти мусор для таблицы журналов

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