You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

修改源数据集为实际SQL数据类型时Copy Activity报错

问题场景

我配置了一个从Azure Blob存储的CSV文件到Azure SQL数据库的复制活动,在映射选项卡导入架构后,源端所有字段默认都是字符串类型。我手动修改复制活动的JSON配置,把源字段类型改成date、double、int等以匹配目标SQL表的字段类型,结果运行后报错:

错误1:无法将值转换为指定的数据类型(例如字符串转date时,提示“无法识别为有效的日期时间格式”)
错误2:复制活动在数据转换阶段失败,源数据与指定的类型不兼容

解决办法

1. 先排查源数据格式问题

  • 如果是日期类型报错:确认CSV里的日期格式和你指定的date类型解析规则是否匹配。比如CSV里是MM/dd/yyyy(如03/13/2023),但默认解析器用的是yyyy-MM-dd,这时候要在源数据集的JSON配置里加日期格式参数:
    "formatSettings": {
      "csvFormatSettings": {
        "dateTimeFormat": "MM/dd/yyyy"
      }
    }
    
  • 如果是数值类型报错:检查CSV里的数值有没有非数字字符(比如千分位逗号、$符号),要么提前清理数据,要么在源配置里加对应的格式处理参数。

2. 改用映射里的类型转换,别直接改源字段类型

没必要修改源端的原始类型定义,直接在复制活动的映射配置里给字段加自动转换规则就行,示例片段:

"mappings": [
  {
    "source": {
      "name": "order_date",
      "type": "String"
    },
    "sink": {
      "name": "order_date",
      "type": "DateTime"
    },
    "typeConversion": true,
    "typeConversionSettings": {
      "dateTimeFormat": "MM/dd/yyyy"
    }
  },
  {
    "source": {
      "name": "amount",
      "type": "String"
    },
    "sink": {
      "name": "amount",
      "type": "Double"
    },
    "typeConversion": true
  }
]

3. 先跳过错误行定位问题

可以在复制活动的settings里开启跳过错误行,先跑一遍看看具体哪行数据出问题:

"skipErrorFile": {
  "fileForbidden": false,
  "dataInconsistency": true
}

然后去日志里找错误行的具体内容,针对性调整配置或数据。

内容的提问来源于stack exchange,提问作者AzSurya Teja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 02:32:19