Ssis Varchar(编号)导致SSI中出现故障

Ssis Varchar(编号)导致SSI中出现故障,ssis,varchar,Ssis,Varchar,我正在开发一个非常简单的SSIS包:运行一个存储过程将数据从变量表直接导出到平面文件目标中。最初,变量表中的每一列都被定义为varchar(max),到目前为止运行良好。为了提高性能,我决定对变量表应用约束,它与varchar(max)不兼容,我必须给它指定一个特定的数字,例如varchar(10)。更改后,此SSI出现一系列错误: Error: 0xC0202009 at ESP AL Extract, OLE DB Source [835]: An OLE DB error has occu

我正在开发一个非常简单的SSIS包:运行一个存储过程将数据从变量表直接导出到平面文件目标中。最初,变量表中的每一列都被定义为
varchar(max)
,到目前为止运行良好。为了提高性能,我决定对变量表应用约束,它与varchar(max)不兼容,我必须给它指定一个特定的数字,例如
varchar(10)
。更改后,此SSI出现一系列错误:

Error: 0xC0202009 at ESP AL Extract, OLE DB Source [835]: An OLE DB error has
occurred. Error code: 0x80040E21.
An OLE DB record is available.  Source: "Microsoft SQL Native Client" 
Hresult: 0x80040E21  Description: "Multiple-step OLE DB operation generated
errors. Check each OLE DB status value, if available. No work was done.".
Error: 0xC0208265 at ESP AL Extract, OLE DB Source [835]: Failed to retrieve
long data for column "SR_RequestID".
Error: 0xC020901C at ESP AL Extract, OLE DB Source [835]: There was an error 
with output "OLE DB Source Output" (846) on component "OLE DB Source" (835).
The column status returned was: "DBSTATUS_UNAVAILABLE".
Error: 0xC0209029 at ESP AL Extract, OLE DB Source [835]: The "output
"OLE DB Source Output" (846)" failed because error code 0xC0209071 occurred,
and the error row disposition on "component "OLE DB Source" (835)" specifies 
failure on error. An error occurred on the specified object of the 
specified component.
平面文件列数据类型为
string[DT_STR]
。任何想法都值得欣赏。

试试这个:-

右键单击
OLEDB源
并选择
显示高级编辑器
。在
输入输出属性
中展开
OLEDB源输出
输出列
。选择列并将数据类型更改为长度为10的
字符串[DT_STR]


出现错误的原因是,当您首次使用数据类型
varchar
(max)创建存储过程时,SSIS将列转换为
DT\u TEXT
。因此,一旦将列数据类型更改为
varchar(10)
,SSIS未能将
varchar
转换为
text stream
。因此失败。

仍不工作。原始值是255,是否足够?SP中使用的列的数据类型是什么?flat destination中的列的数据类型是什么?SP中的varchar(7);用于平面文件的字符串[DT_STR],长度为7(原始255,但也不起作用)。当您将
OLEDB源输出列
数据类型转换为DT_STR时,是否在源组件中仍然失败?source!我选择了目的地。感谢praveen,resolved.MAX columns和SSIS是一个糟糕的组合。切忌!