Microsoft Access 2016通过ODBC导出至MariaDB时遇ODBC错误1265求助
解决Access 2016 ODBC导出MariaDB时的「Data truncated for column 'TotRev' at row 1」错误
刚碰到过类似的问题,这个#1265错误其实很好定位——本质就是MariaDB目标表的TotRev字段兜不住Access里的对应数据,导致截断了。给你几个一步步排查的思路:
先查MariaDB目标表的字段定义
登录MariaDB,用DESCRIBE 你的目标表名;命令查看TotRev的字段类型、长度、精度这些参数。比如如果是VARCHAR(50),但Access里这个字段存了更长的文本;或者是DECIMAL(10,2),但Access里的数值精度更高(比如带四位小数的货币值),都会触发这个截断错误。对比Access源表的
TotRev属性
在Access里右键源数据表→打开「设计视图」,仔细看TotRev的类型(文本/货币/数值等)、字段大小、小数位数。重点关注:- 如果是文本/备注类型:Access里允许的最大长度是不是远大于MariaDB对应字段?比如Access的「备注」类型能存超长文本,而MariaDB如果只设了
VARCHAR(255)就肯定装不下。 - 如果是数值/货币类型:Access里的取值范围、小数位数有没有超出MariaDB字段的定义?比如Access货币类型支持的精度是19位数字+4位小数,要是MariaDB用了
INT或者DECIMAL(10,2)就会出问题。
- 如果是文本/备注类型:Access里允许的最大长度是不是远大于MariaDB对应字段?比如Access的「备注」类型能存超长文本,而MariaDB如果只设了
针对性调整字段或预处理数据
根据对比结果来解决:- 调整MariaDB字段:比如把
VARCHAR(255)改成TEXT/LONGTEXT适配Access的备注类型;把DECIMAL(10,2)改成DECIMAL(19,4)匹配Access货币类型的精度。 - 清理Access数据:检查第1行的
TotRev值是不是有异常(比如超长字符串、格式错误的数值),先修复这条数据再导出。 - 换ODBC驱动:如果用的是旧版驱动,试试最新的MariaDB ODBC驱动,旧驱动的类型映射可能有bug,导致自动创建的字段长度不够。
- 调整MariaDB字段:比如把
备选方案:转成中间格式导入
如果ODBC直接导出一直卡壳,可以先把Access表导出成CSV文件,然后用MariaDB的LOAD DATA INFILE命令导入,这样能更灵活地控制字段映射,还能提前检查CSV里的TotRev数据有没有问题。示例命令:LOAD DATA INFILE 'C:/temp/你的表数据.csv' INTO TABLE 目标表名 FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 ROWS; -- 要是CSV带表头就加这句
内容的提问来源于stack exchange,提问作者kingbrain
相关产品推荐
相关产品推荐

