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

使用odbc::dbWriteTable追加数据时报错:无效列名'row_names'

解决odbc::dbWriteTable()追加数据时出现'row_names'列错误的问题

问题原因

odbc::dbWriteTable() 底层依赖DBI的处理逻辑,默认会把dataframe的行名(哪怕是R自动生成的整数序列行名)作为名为row_names的列尝试插入目标SQL表。你的目标表不存在这个列,因此触发了"Invalid column name 'row_names'"的错误。

解决方法

在调用dbWriteTable()时显式添加row.names = FALSE参数,强制函数忽略dataframe的行名,只写入数据列。

修改后的代码:

odbc::dbWriteTable(
  connection, 
  DBI::SQL(glue("{database}.{schema}.{table}")), 
  value = dataframe, 
  append = TRUE,
  row.names = FALSE
)

额外验证(可选)

若担心dataframe存在自定义行名,可通过rownames(dataframe)查看;若确实不需要,也可以提前用rownames(dataframe) <- NULL清除,但只需添加row.names = FALSE参数就足够解决问题,无需额外操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 01:06:30