Ssis Varchar(编号)导致SSI中出现故障
我正在开发一个非常简单的SSIS包:运行一个存储过程将数据从变量表直接导出到平面文件目标中。最初,变量表中的每一列都被定义为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
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是一个糟糕的组合。切忌!