TEXT类型的子字符串通过OLEDB / SSIS返回NULL

时间:2011-11-18 05:40:11

标签: ssis oledbconnection

我正在尝试在SQL 2008数据库中提取DT_TEXT列的前120个字符。我的SQL语句工作正常,并在SQL Management Studio中返回所需的结果。

但是,当查询使用OLEDB Source组件在SSIS中运行时,它将返回所有空值。一切都是相同的 - 完全相同的服务器,数据库和表。将相同的SQL语句剪切并粘贴到OLEDB源中。这是它的样子:

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

ColADT_TEXT数据类型。

有没有人知道为什么这个语句在SSIS中通过OLEDB连接运行时不返回任何数据?

谢谢!

1 个答案:

答案 0 :(得分:0)

您是否尝试将数据转换为varchar?

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

这应该强制oledb组件将有关列的元数据更改为DT_STR,事情应该从那里开始工作。看起来奇怪的是源组件首先没有正确,但我从未使用过文本数据类型。