0

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

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

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

ColA是一种DT_TEXT数据类型。

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

谢谢!

4

1 回答 1

0

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

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

这应该迫使 oledb 组件将有关列的元数据更改为,DT_STR并且事情应该从那里开始工作。看起来很奇怪,源组件一开始就没有做好,但我从来没有使用过文本数据类型。

于 2011-11-18T13:13:16.750 回答