SSIS - значение не может быть преобразовано из-за потенциальной потери данных
Я относительно новичок в SSIS. Я пытаюсь извлечь информацию из базы данных Oracle с помощью Microsoft OLEDB для Oracle, и я использую этот запрос:
SELECT ID FROM Test
Я получаю сообщение об ошибке: the value cannot be converted because of a potential loss of data
. Если я изменил запрос на следующий, то он работает:
SELECT '1' FROM Test
Я думаю, что он терпит неудачу, потому что ID не является целым числом. Однако диспетчер соединений с плоскими файлами показывает, что OutputColumnWidth равен 50. Что я делаю неправильно?
Обновить 16:30 GMT
Я рассмотрел это немного больше, и это, по-видимому, столбцы с гистограммой "частота" или "нет", которые вызывают проблемы. Те, у кого есть гистограмма "Сбалансированный по высоте", выглядят нормально.
Ответы
Ответ 1
Это обычная вещь. По умолчанию во многих случаях для импорта в ssis из другого типа системы, где невозможно определить метаданные для столбцов, является значение по умолчанию для str (50). Поскольку вы пытаетесь направить это на столбец с одним символом, он предполагает, что вы можете потерять данные. Просто перейдите в исходный компонент, щелкнув правой кнопкой мыши и выбрав "Показать расширенный редактор..."
Затем перейдите к последней вкладке (Свойства входа и выхода)
Нажмите + рядом с исходным выходом OLE DB
Нажмите + рядом с столбцами вывода
Выделите столбец идентификатора
Прокрутите до свойства типа данных длины справа от диалогового окна и измените его с 50 на 1.