Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
Excel 由于发生截断,因此失败_Excel_Ssis - Fatal编程技术网

Excel 由于发生截断,因此失败

Excel 由于发生截断,因此失败,excel,ssis,Excel,Ssis,我在SSIS导入过程中遇到以下错误 “工作簿.Outputs[Excel源输出].Columns[XYZ]”失败,因为发生了截断,“工作簿.Outputs[Excel源输出].Columns[XYZ]”上的截断行处理指定截断失败。指定组件的指定对象上发生截断错误。“ 我知道这个问题与XYZ列太大和被截断有关。但就我个人而言,我无法找到解决方案 在我的数据库中,此列设置为NVARCHAR(512)。该列的最大值仅为265,但我的SSIS包中的某些内容没有更新为列大小 在数据源步骤中,我执行了以下操

我在SSIS导入过程中遇到以下错误

“工作簿.Outputs[Excel源输出].Columns[XYZ]”失败,因为发生了截断,“工作簿.Outputs[Excel源输出].Columns[XYZ]”上的截断行处理指定截断失败。指定组件的指定对象上发生截断错误。“

我知道这个问题与XYZ列太大和被截断有关。但就我个人而言,我无法找到解决方案

在我的数据库中,此列设置为NVARCHAR(512)。该列的最大值仅为265,但我的SSIS包中的某些内容没有更新为列大小

在数据源步骤中,我执行了以下操作:

  • 右键单击并进入高级编辑器
  • 转到输入和输出属性
  • 选中“输出列”中有问题的列,长度设置为512 Unicode字符串[DT_WSTR]
  • 但是,我注意到在“外部列”部分中,长度只有255。但是,我似乎无法更新此值,因为每次我将其更改为512时,它都会恢复为255

因此,我不确定“外部列”是否“在高级编辑器中是一个问题,如果是,如何更新该值并防止其恢复到原始255值。

答案就是上面提到的。只想结束问题并将其标记为已回答。

使用电子表格,在前8行数据中,将XYZ列的值替换为265个字符的数据。保存,关闭电子表格。关闭并重新打开包。您可能在Excel源上有一个黄色感叹号,双击它,它会自动更新元数据。如果长度是你想要的,那么你已经准备好了。使用未更改的Excel文件保存并运行包。这样做有效吗?我目前找不到它,但您可以在连接字符串/参数中编辑一些内容,让Excel扫描比上面建议的前8行更多的数据行。这可能是:正确的,
IMEX=1
在扩展属性中允许它扫描最初8行以外的数据,以解释数据类型。然而,这里的问题似乎是它正确地将类型标识为字符串,而不是正确的起始长度。与处理扩展属性相比,修改源文件以报告最小列宽是一个更快的胜利/耸肩