只有在执行包实用程序

时间:2016-08-10 19:42:25

标签: sql ssis sql-server-2012 truncated

我有一个简单的包,可以将数据从规范化数据库传输到非规范化数据库。

它在Visual Studio 2015上针对远程开发服务器(SQL Server 2012)运行良好。

但是当我将它上传到dev服务器并使用Execute Package Utility运行它 我收到这个错误:

  

文本被截断或目标代码页中的一个或多个字符不匹配

检查事项:

  1. 检查错误列,它是相同的类型,长度(varchar 250)&整理来源&目的地数据库。

  2. 在开发服务器上安装SQL Server 2012 SP3

  3. 谷歌搜索这个错误我看到它是平面文件导入的典型,但我正在使用OLE DB源&目的地

  4. 软件包已从Visual Studio 2008升级,ssis项目设置为针对SQL Server 2012运行

  5. 将错误/截断行重定向到平面文件不会产生任何结果

  6. 输入&使用高级编辑器检查输出,所有输出都是[DT_STR] 250&相同的代码页

  7. 有什么想法吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您应该通过右键单击OLEDB源和目标组件来检查高级编辑器。检查他们的数据类型和长度。他们应该匹配。

流程:

在源任务上,右键单击 - >显示高级编辑器 - >输入和输出属性 - >源输出 - >输出列 - >数据类型属性 - >数据类型/长度

源和&中的更改(数据类型/长度)目的地的方式与您的要求类似。

在源任务上,右键单击 - >显示高级编辑器 - >输入和输出属性 - >源输出 - >输出列 - > TruncationRowDisposition。

- 失败组件 - 如果发生截断则失败

- 忽略失败 - 忽略截断错误

- 重定向行 - 将截断的行重定向到所需的目标

您也可以检查行以猜测原因,如果它们仍然失败

我希望这可以帮到你!