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

SSIS从SQL Server导数据到MySQL遇'Unknown column p1'错误求助

解决SQL Server转MySQL时"Unknown column 'p1' in 'field list'"错误的方案

Error: 0xC020844B at Data Flow Task, ADO NET Destination [2]: An exception has occurred during data insertion, the message returned from the provider is: Unknown column 'p1' in 'field list'

针对所有表导出均触发该错误的情况,可按以下步骤排查解决:

1. 升级/重装MySQL ADO.NET驱动

  • 卸载当前的MySQL Connector/NET,安装匹配VS2019的最新稳定版驱动。旧版本驱动存在参数化查询BUG,会错误生成p1这类未映射的占位符字段。

2. 调整ADO.NET Destination组件配置

  • 选中数据流任务中的ADO NET Destination,进入编辑界面:
    • 连接管理器:确认目标表选择正确,无错选含p1列的表;
    • 映射:检查源列与目标列的映射关系,确保无多余未映射项;
    • 数据访问模式:将Table or view - fast load改为Table or view,快速加载模式可能触发驱动异常逻辑。

3. 修改MySQL的SQL模式设置

  • 登录MySQL服务器,执行命令关闭严格SQL模式:
    -- 全局生效,需重启服务
    SET GLOBAL sql_mode = 'NO_ENGINE_SUBSTITUTION';
    -- 会话级临时生效,用于快速测试
    SET SESSION sql_mode = 'NO_ENGINE_SUBSTITUTION';
    
    严格模式下的部分规则会干扰SSIS的插入逻辑,导致错误字段占位符生成。

4. 禁用SSIS元数据预校验

  • 右键数据流任务,打开属性面板,将ValidateExternalMetadata设置为False。该属性开启时,SSIS预校验元数据可能与MySQL的元数据返回不兼容,引发异常。

5. 切换连接方式测试

  • 放弃ADO.NET连接,改用MySQL ODBC驱动配置连接管理器,重新创建数据流任务测试。ODBC驱动在SSIS中的兼容性通常更稳定,可规避ADO.NET驱动的特定BUG。

内容的提问来源于stack exchange,提问作者Dave Carpenter

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 12:35:31