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

Pyodbc跨Access数据库复制表报错:查询值与目标字段数量不匹配

问题分析与解决

你的代码存在明显的SQL语法错误,这是导致报错的直接原因,和Pyodbc本身的跨库支持无关。

错误点:跨库INSERT INTO的IN子句格式错误

你写的SQL语句中,IN '' ';database=C:\DB2.accdb' 格式完全不符合Access ODBC的语法规范,这种错误写法会让数据库无法正确识别目标数据库和表结构,进而误判为“字段数量不匹配”(也就是你看到的21S01错误)。

修正后的SQL语句

针对Access ODBC的跨库插入,有两种正确的写法:

写法1:直接指定目标数据库路径

INSERT INTO Tab1 IN 'C:\DB2.accdb'
SELECT 
    Col1,
    Col2
FROM Tab1

写法2:使用连接字符串格式(需用方括号包裹)

INSERT INTO Tab1 IN '[;database=C:\DB2.accdb]'
SELECT 
    Col1,
    Col2
FROM Tab1

额外验证点

虽然你说表结构一致,但要确认:目标表Tab1的字段数量和顺序,和你SELECT的Col1, Col2完全对应,或者目标表中未被选中的字段允许为空值,避免后续出现类似的字段匹配问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 08:06:50