Ssis 文本类型上的子字符串通过OLEDB/SSI返回NULL
我试图提取SQL 2008数据库中Ssis 文本类型上的子字符串通过OLEDB/SSI返回NULL,ssis,oledbconnection,Ssis,Oledbconnection,我试图提取SQL 2008数据库中DT_TEXT列的前120个字符。我的SQL语句工作正常,并在SQL Management Studio中返回所需的结果 但是,当查询使用OLEDB源组件在SSI中运行时,它将返回所有空值。一切都是一样的——完全相同的服务器、数据库和表。将相同的SQL语句剪切并粘贴到OLEDB源中。下面是它的样子: SELECT SUBSTRING(ColA, 1, 120) AS MyCol from MyTable ColA是一种dtu文本数据类型 有人知道为什么此语句在
DT_TEXT
列的前120个字符。我的SQL语句工作正常,并在SQL Management Studio中返回所需的结果
但是,当查询使用OLEDB源组件在SSI中运行时,它将返回所有空值。一切都是一样的——完全相同的服务器、数据库和表。将相同的SQL语句剪切并粘贴到OLEDB源中。下面是它的样子:
SELECT SUBSTRING(ColA, 1, 120) AS MyCol from MyTable
ColA
是一种dtu文本
数据类型
有人知道为什么此语句在SSIS中通过OLEDB连接运行时不返回任何数据吗
谢谢 您是否尝试将数据强制转换到varchar
SELECT CAST(SUBSTRING(ColA, 1, 120) as varchar(120)) AS MyCol from MyTable
这将迫使oledb组件将关于列的元数据更改为DT_STR
,从那时起,事情就应该开始了。看起来很奇怪,源组件一开始没有正确使用它,但我从未使用过文本数据类型