使Kingswaysoft截断太长的输入数据

时间:2017-06-02 20:23:21

标签: sql-server ssis dynamics-crm microsoft-dynamics kingswaysoft

我有一个SSIS项目,我用它来自动化使用Kingswaysoft将CRM数据拉入SQL Server数据库。这些SSIS包是自动生成的,因此我对此问题的解决方案需要与之兼容。

CRM中联系人的描述字段是nvarchar(2000),但此CRM组织仍然具有旧数据,其中一些旧联系人记录的描述长度超过2000个字符。当我尝试使用Kingsway拉动那些时,我收到了这个错误:

  

错误:0xC002F304处于联系人阶段数据,导出联系人数据[2]:出现以下错误消息时出错:"'描述'的输入值字段(或其相关字段之一)不适合输出缓冲区,请考虑增加输出列的Length属性或将其数据类型更改为可容纳更多数据的数据类型,如ntext(DT_NTEXT)。可以使用组件的“高级编辑器”窗口完成此更改。"。

这是有道理的,因为我拉的列比元数据中指定的长,但问题是我想忽略此错误,截断列,并继续数据加载。显然我可以将列设置为DT_NTEXT而不用担心它,但由于这些包是自动生成的,我无法事先知道哪些列有旧数据而哪些不存在,所以我不知道哪个应该是DT_NTEXT。

那么有没有办法让Kingswaysoft截断输入数据的时间长于元数据中指定的数据?

1 个答案:

答案 0 :(得分:4)

感谢您选择KingswaySoft作为您的集成解决方案。对于这种情况,遗憾的是,如果不在组件的高级编辑器中进行这些更改,就无法完成这项工作。

如果源组件只是忽略错误并截断该值,您将丢失一些数据,从而影响集成期间的数据完整性。因此,您可能需要将数据类型更改为DT_NTEXT或增加此字段的长度,以便正确处理此情况。或者,您可以尝试更改CRM端的字段长度,以便可以正确生成SSIS包。