SSIS使用MySQL ODBC连接器无法返回输入列如何解决
SSIS MySQL ODBC源无法加载输入列故障处理
故障表现
- 已完成MySQL ODBC连接器配置,表/视图模式、SQL Command模式下均可以正常预览数据
- ODBC源组件始终无法返回、加载显示输入列,无法完成后续字段映射配置
- 故障界面参考:

排查解决步骤
按优先级依次操作即可:
- 匹配驱动位宽与SSIS运行位宽
能预览数据但读不到元数据,最常见诱因是驱动位宽不匹配:- 右键SSIS项目选择「属性」-「调试」,查看
Run64BitRuntime配置值 - 配置值为
True时必须安装64位版MySQL ODBC驱动,配置值为False时必须安装32位版MySQL ODBC驱动 - 建议两个版本的驱动都安装,分别在32位、64位ODBC数据源管理器中验证连通性,避免位宽冲突
- 右键SSIS项目选择「属性」-「调试」,查看
- 清空SSIS元数据缓存后重配源组件
SSIS本地缓存损坏也会导致元数据读取失败:- 删除当前数据流中已添加的ODBC源组件,保存项目后关闭Visual Studio
- 按Win+R输入
%temp%回车打开临时目录,删除所有名称以SSIS开头的临时缓存文件夹 - 重新打开项目,新建ODBC源组件,重新绑定连接管理器、选择读取模式,点击组件配置页的「刷新」按钮后再查看输入列列表
- 调整兼容配置绕过元数据读取异常
以上操作无效时,通过配置调整绕过驱动的元数据接口兼容问题:- 选中ODBC连接管理器,在属性面板将
UseEarlyMetadata值改为False - 使用SQL Command模式读取时,将原有查询语句嵌套一层外层查询,强制驱动返回固定结构元数据,示例代码:
配置完成后重新刷新源组件,即可正常加载所有输入列。SELECT * FROM ( -- 替换为你实际的业务查询语句 SELECT id, user_name, create_time FROM order_table ) AS meta_temp - 选中ODBC连接管理器,在属性面板将
内容的提问来源于stack exchange,提问作者Anuradha
相关产品推荐
相关产品推荐

