我试图在SQL 2008数据库中提取DT_TEXT
列的前120个字符。我的SQL语句工作良好,并返回所需的结果在SQL管理工作室。
但是,当使用OLEDB源组件在SSIS中运行查询时,它返回所有null。一切都是相同的——完全相同的服务器、数据库和表。将相同的SQL语句剪切粘贴到OLEDB源文件中。下面是它的样子:
SELECT SUBSTRING(ColA, 1, 120) AS MyCol from MyTable
ColA
为DT_TEXT
数据类型。
有人知道为什么这个语句在SSIS中通过OLEDB连接运行时不返回任何数据吗?
谢谢!
您尝试过将数据转换为varchar吗?
SELECT CAST(SUBSTRING(ColA, 1, 120) as varchar(120)) AS MyCol from MyTable
这将迫使oledb组件将有关列的元数据更改为DT_STR
,并且事情应该从那里开始工作。似乎奇怪的源组件没有得到它的权利在第一个地方,但我从来没有使用过文本数据类型。