在 mutate 中截断列时 dbWriteTable 出错;无需变异即可正常工作

时间:2021-01-21 08:39:22

标签: r sql-server odbc stringr dbi

我遇到了一个有趣的问题。我有一个要写入数据库的小标题。当我使用以下代码时,它工作正常:

dbWriteTable(conn, "table_name", x_tbl)

但是在 tibble 中,我有一个备注栏,我想限制它的大小。就我而言,字符串最多应为 1000 个字符。为此,我执行以下操作:

x_tbl <- x_tbl %>% mutate (remark = remark %>% str_trunc(1000, side="left")
dbWriteTable(conn, "table_name", x_tbl)

当我执行该代码时,我从 SQL SERVER 收到以下错误消息:

Error in result_insert_dataframe(rs@ptr, values, batch_rows) : 
  nanodbc/nanodbc.cpp:1655: 22001: [Microsoft][ODBC SQL Server Driver]String data, right truncation 

我使用了各种其他方法来限制字符串的长度;其中包括 str_sub()strsub()

有没有人知道是什么导致了这种情况以及如何解决?

0 个答案:

没有答案