Позвольте мне начать с разъяснения, что это не дублирующий вопрос и не потенциальный дубликат в этом отношении. Я безуспешно пытался реализовать каждый ответ на каждый существующий вариант этой проблемы в StackOverflow и DBA Stack Exchange.
Я боролся с этой проблемой в течение последних двух дней (работая над ней примерно 7 часов в день), и даже после поиска в Google, похоже, ни у кого больше нет такого точного варианта моей проблемы.
Что я пытаюсь сделать?
В SSIS я пытаюсь прочитать файл CSV и вставить строки из него в базу данных OLE DB. Для этого я сделал самую простую настройку из всех, что было показано ниже.
Flat File Source
- читает строки CSV.Derived Column
- в настоящее время ничего не делает (это просто для экспериментов).Data Conversion
- в настоящее время ничего не делает (это просто для экспериментов).OLE DB Destination
- сохраняет строки в базе данных.
Когда я пытаюсь запустить его, он перестает выполняться в моем месте назначения OLE DB со следующим сообщением об ошибке.
Произошла ошибка с входным столбцом «Сумма» (187) на входе «Целевой вход OLE DB» (51). Возвращено состояние столбца: «Невозможно преобразовать значение из-за потенциальной потери данных».
Столбец, который терпит неудачу ( Amount
), в настоящее время имеет тип DT_STR
. Похоже, это тот тип, в который я больше всего верю сейчас.
Что я пробовал?
- Я попытался использовать
Flat File Connection
функцию «Предложить типы» для столбца, который не работает. Это позволило рекомендоватьSingle byte signed int
тип данных.- Останавливается на моем источнике плоских файлов .
- Ошибка : преобразование данных не удалось. Преобразование данных для столбца «Сумма» вернуло значение состояния 2 и текст состояния «Значение не удалось преобразовать из-за потенциальной потери данных».
- Я пытался использовать,
Derived Column
чтобы привести столбец вDT_I4
.- Останавливается на моей производной колонке .
- Ошибка : преобразование данных не удалось. Преобразование данных для столбца «Сумма» вернуло значение состояния 2 и текст состояния «Значение не удалось преобразовать из-за потенциальной потери данных».
- Я пытался использовать
Data Conversion
для приведения значения моего столбца кDT_I4
.- Останавливается на моем
Data Conversion
. - Ошибка : преобразование данных не удалось. Преобразование данных для столбца «Сумма» вернуло значение состояния 2 и текст состояния «Значение не удалось преобразовать из-за потенциальной потери данных».
- Останавливается на моем
- Я попытался изменить длину моего
DT_STR
значения в источнике и месте назначения.- Останавливается у источника или места назначения в зависимости от настроек.
- Я попытался подключиться, используя вместо этого исходный коннектор Excel с добавленной строкой подключения и без нее
IMEX=1
. Неудачно.
Мой смысл программирования говорит мне, что я облажался. Я никогда не сталкивался с такой большой проблемой для такой простой вещи.
И почему я не могу просто проигнорировать «потенциальную» потерю данных? Это действительно расстраивает, если не сказать больше.
Моя система
Это компьютер с Windows Server 2008 R2 с установленным SQL Server 2008. Сама машина полностью обновляется через Центр обновления Windows.
Amount
?
Amount
столбец. Сделайте снимок экрана и обновите ваш вопрос этой картинкой.