使用dbWriteTable将NULL值写入SQL数据库的理由

问题描述 投票:0回答:1

我正在使用库(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值,则表导入不会有任何问题。

r sql-server ssms rhandsontable
1个回答
0
投票

而不是使用dbWriteTable,我通过将VALUES插入SQL解决了此问题。在此处找到详细信息:https://www.pmg.com/blog/insert-r-data-frame-sql%EF%BB%BF/

© www.soinside.com 2019 - 2024. All rights reserved.