подстрока типа TEXT возвращает значение NULL через OLEDB / SSIS - PullRequest
0 голосов
/ 18 ноября 2011

Я пытаюсь извлечь первые 120 символов столбца DT_TEXT в базе данных SQL 2008.Мой оператор SQL работает нормально и возвращает желаемые результаты в SQL Management Studio.

Однако, когда запрос выполняется в службах SSIS с использованием компонента источника OLEDB, он возвращает все пустые значения.Все идентично - один и тот же сервер, база данных и таблица.Тот же оператор SQL, вырезанный и вставленный в источник OLEDB.Вот как это выглядит:

SELECT SUBSTRING(ColA, 1, 120) AS MyCol from MyTable

ColA - это тип данных DT_TEXT.

Кто-нибудь знает, почему этот оператор не возвращает никаких данных, когда он проходит через OLEDB?Соединение в SSIS?

Спасибо!

1 Ответ

0 голосов
/ 18 ноября 2011

Вы пытались привести данные к varchar?

SELECT CAST(SUBSTRING(ColA, 1, 120) as varchar(120)) AS MyCol from MyTable

Это должно заставить компонент oledb изменить метаданные о столбце на DT_STR, и с этого момента все должно работать.Кажется странным, что исходный компонент неправильно понял его, но я никогда не работал с текстовым типом данных.

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