我正在使用库(rhandsontable)创建下表
rhandsontable(df, className = "htCenter", stretchH = "all", columnSorting = TRUE) %>%
hot_col("Date", type = "date", dateFormat = "YYYY-MM-DD") %>%
hot_cols(format = '1')
将表转换为数据框dfHot <- hot_to_r(input$hot)
,然后使用以下方法复制到SSMS SQL数据库中
dbWriteTable(con, "TEST", dfHot, append = TRUE, overwrite = FALSE, row.names = FALSE)
问题是表可以包含NULL
值,在R中显示为NA
,但我需要它们在SQL中以NULL
的形式出现。
当表中存在NA
值时出现此错误:
警告:.local中的错误:执行JDBC更新查询失败dbSendUpdate(传入表格数据流(TDS)远程过程呼叫(RPC)协议流不正确。参数6(“”):提供的值不是数据类型float的有效实例。检查无效值的源数据。无效值的一个示例是data数字类型,其刻度大于精度。)
如果不存在NA
值,则表导入不会有任何问题。
而不是使用dbWriteTable
,我通过将VALUES插入SQL解决了此问题。在此处找到详细信息:https://www.pmg.com/blog/insert-r-data-frame-sql%EF%BB%BF/