我需要在i系列DB2数据库上执行完全提取(SELECT * FROM)。我正在使用Copy Activity,但由于特殊字符编码,该操作在源提取上失败:
错误代码2200
故障类型用户配置问题
详细信息“源”端发生故障。错误代码= DB2 DriverRunFailed,类型=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,消息=从驱动程序引发的错误。SQL代码:“-343”,源=Microsoft.DataTransfer.ClientLibrary.Db2Connector,“”类型=Microsoft.主机集成.DrdaClient.DrdaException,消息= HISMPCB 0001在BasePrimitiveConverter中发生了一个异常。异常描述:输出缓冲区小于所需的大小12 SQLSTATE= HY 000 SQLCODE= -343,Source =Microsoft.HostIntegration.Drda.请求方,'
我在这里研究过类似的问题:https://learn.microsoft.com/en-us/answers/questions/467456/failure-happened-source-side-in-copy-activity-for.html
我认为问题的根源是DB2的本机ADF连接器的数据类型Map:加载到接收器中时,DB2数据类型将转换为服务内部使用的临时数据类型。这些临时数据类型似乎不兼容,从而导致源中出现故障:
https://learn.microsoft.com/en-us/azure/data-factory/connector-db2?tabs=data-factory#data-type-mapping-for-db2
我已尝试以下操作,但未成功:
1.添加容错功能以跳过不兼容的行
1.更改不兼容列的数据类型
在摄取查询上使用数据类型对某些列有效,但对其他列无效--这是一个不一致的解决方案,请寻求有关如何修复此问题并保持完整源查询的建议。
2条答案
按热度按时间blmhpbnm1#
根据此给定信息,无法确定实际导致问题的数据部分。问题可能来自列或列中的某些值。
下列数据型别转换支援从来源到接收的中继型别之间的转换。
我建议您,如果您有一个支持计划,您可以提交一个支持票证,否则请发送电子邮件到azcommunity@microsoft.com。提供订阅ID和示例数据,以便他们可以提供确切的解决方案。
isr3a4wc2#
尝试启用容错数据类型,看起来Azure数据库中不允许出现此问题的字符:https://learn.microsoft.com/en-us/azure/data-factory/copy-activity-fault-tolerance
因此,我建议在表中执行一个disctinct,并在移动副本之前检查某行中是否有不同的数据。