ОШИБКА SSIS «Преобразование не удалось, поскольку значение данных превысило указанный тип» - PullRequest
0 голосов
/ 22 января 2019

Я использую ssis для анализа файла TXT на сервере SQL. Я использую скрипт-задачу для преобразования строкового примера "20190523100520" (тип: гггг-ММ-дд ЧЧ: мм: сс) в дату и время (это тип данных в таблице sql).

Но я получаю ошибку:

[Назначение OLE DB [68]] Ошибка: «Произошла ошибка с OLE DB Destination.Inputs [Ввод назначения OLE DB]. Столбцы [NewEffectiveTS_NXX_X] в

Назначение OLE DB. Входы [Назначение OLE DB]. Состояние столбца возвращено: «Преобразование не выполнено, поскольку значение данных вышло за пределы указанного типа.

В задаче скрипта, вводить и выводить теги, я использую метку времени базы данных [DT_DBTIMESTAMP] тип для столбцов [NewEffectiveTS_NXX_X]

Все помогают мне. Большое вам спасибо!

Ответы [ 2 ]

0 голосов
/ 22 января 2019

Чтобы преобразовать это значение в тип данных datetime внутри скрипта, вы можете использовать функцию DateTime.ParseExact():

DateTime.ParseExact([Column],"yyyyMMddHHmmss",System.Globalization.CultureInfo.InvariantCulture)

Поскольку строковое значение 20190523100520 не может быть неявно преобразовано в datetime путем сопоставления столбца типа stringдругому типу datetime.

0 голосов
/ 22 января 2019

Попытались ли вы перенаправить вывод ошибки в плоский файл и проверить, содержат ли строки неправильные данные в поле даты и времени. Если вы не можете найти каких-либо проблем, попробуйте поместить строку в допустимый формат, вставив "/", " «и»: например, ваша строка «20190523100520» станет «2019/05/23 10:05:20»

...