Используйте ADO.Net вместо OLEDB
Исходя из ваших комментариев, похоже, что вы используете OLEDB Provider для подключения к Sybase.Предпочтительным способом подключения к Sybase является использование поставщиков ADO.Net, а не OLEDB.
Проблемы с поставщиком OLEDB Sybase
С помощью небольшого поиска в Интернете вы можете понять, что поставщик OLEDB Sybase может вызвать несколько проблем.при использовании в SSIS, например:
Sybase ADO.NET
ADO.Net - это правильный способ подключения к sybase из служб SSIS.
ВСледуя официальной документации , они упомянули, что:
Адаптивный сервер ADO.NET Поставщик данных может быть интегрирован в службы интеграции SQL Server (SSIS), обеспечивая естественный доступ к данным ADO.NETФункции провайдера.
Благодаря интеграции вы можете использовать Adaptive Server в качестве:
- ADO.NET Connection Manager
- ADO.NET Исходный компонент потока данных
- ОБЪЯВЛЕНИЕКомпонент потока данных O.NET Destination
Также на официальной странице загрузки они не упомянули поставщика OLEDB, но упомянули ADO.NET
Пошаговое руководство по использованию поставщика данных Sybase ADO.Net
Вы можете проверить следующую ссылку:
Обходной путь
Если ADO.Net не работал, убедитесь, что проблема не вызвана некоторыми символами Unicode, которые не поддерживаются в месте назначения Sybase.
Попробуйте добавить компонент сценария, добавьте столбец Output типа DT_STR
и используйте следующий код:
Row.outColumn = Encoding.GetEncoding("Windows-1250").GetString(Encoding.GetEncoding("Windows-1250").GetBytes(Row.inColumn))
И сопоставьте outColumn
с назначением.