Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssis 文本类型上的子字符串通过OLEDB/SSI返回NULL_Ssis_Oledbconnection - Fatal编程技术网

Ssis 文本类型上的子字符串通过OLEDB/SSI返回NULL

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文本数据类型 有人知道为什么此语句在

我试图提取SQL 2008数据库中
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
,从那时起,事情就应该开始了。看起来很奇怪,源组件一开始没有正确使用它,但我从未使用过文本数据类型