【问题标题】:odbc::dbWriteTable error - Invalid column name 'row_names'odbc::dbWriteTable 错误 - 无效的列名 \'row_names\'
【发布时间】:2022-10-01 09:09:19
【问题描述】:

我正在尝试使用 odbc::dbWriteTable() 函数将 R 中数据帧中的记录附加到已建立的 SQL 数据表中。这是我用于许多工作流的功能,用于将记录附加到各种数据库表。

具体来说:odbc::dbWriteTable(connection, DBI::SQL(glue(\"{database}.{schema}.{table}\")), value = dataframe, append = TRUE)

数据框和目标 SQL 表共享相同的列名和变量类型。

但是,当我尝试运行该函数并附加数据记录时,我收到以下错误:

result_insert_dataframe(rs@ptr, values, batch_rows) 中的错误: nanodbc/nanodbc.cpp:####: ######: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]列名“row_names”无效。 [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无法准备语句。

数据框不包含行名。为什么会生成列名“row_names”,有没有办法确保不生成此列名?非常感谢您的任何建议!

    标签: sql-server odbc


    【解决方案1】:

    对于任何有类似问题的人,答案非常简单。我只需要添加

    row.names=FALSE
    

    到导入功能:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-05-31
      • 1970-01-01
      • 2016-08-16
      • 1970-01-01
      相关资源
      最近更新 更多