包仅在执行包实用程序中执行时失败

Package fails only when executed in Execute Package Utility

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

它 运行 在 Visual Studio 2015 上对 SQL Server 2012 的远程开发服务器没问题。

但是当我将它上传到开发服务器并使用 Execute Package Utility 运行 它时 我收到此错误:

Text was truncated or one or more characters had no match in the target code page

已检查的内容:

  1. 检查了错误列,它是相同的类型、长度(varchar 250)并在源和目标数据库中整理。

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

  3. Google 搜索此错误我发现它是平面文件导入的典型错误,但我使用的是 OLE DB 源和目标

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

  5. 设置为 运行
  6. 重定向错误/t运行将行分类到平面文件不会产生任何结果

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

有什么想法吗? 谢谢

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

进程:

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

根据您的要求以类似方式更改源和目​​标中的(数据类型/长度)。

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

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

--Ignore Failure - 忽略截断错误

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

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

希望对您有所帮助!