gpt4 book ai didi

sql-server - 失败后如何从 future 的 dplyr 查询中收集数据?

转载 作者:行者123 更新时间:2023-12-05 03:07:07 26 4
gpt4 key购买 nike

当我尝试从 SQL Server 数据库中收集大量数据时,我经常会收到来自 nanodbc 驱动程序的神秘错误消息。例如,

library(dplyr)
res <- collect(tbl(con, "result"))

Error in result_fetch(res@ptr, n, ...) : nanodbc/nanodbc.cpp:2525: 08S01: [Microsoft][ODBC Driver 11 for SQL Server]SSL Provider: [err

Result already cleared

从那以后,我得到了错误

Error: 'SELECT * FROM "result" AS "zzz13" WHERE (0 = 1)' nanodbc/nanodbc.cpp:1587: 08S01: [Microsoft][ODBC Driver 11 for SQ

每当我尝试从数据库中的表中收集数据时。这一直持续到我重新启动我的 R session 。

有没有人以前见过这种行为或者可以提供解决方法?

最佳答案

肯定会出现这个错误的一种情况:当表中有 varchar 类型的列时。您可以通过单击 rstudio 中的连接 Pane 、转到相关表并检查列类型来简单地检查这一点。

如果麻烦的列是varchar_col1,那么,

sometbl <- tbl(con, in_schema("schema_name","table_with_trouble"))
sometbl %>% head()

应该重现您的错误。

我不确定为什么会这样,但这里有一个解决方法:

sometbl <- tbl(con, in_schema("schema_name","table_with_trouble")) %>%
mutate(alt_col1 = as.character(varchar_col1)) %>%
select(-varchar_col1)
sometbl %>% head()

应该可以。

关于sql-server - 失败后如何从 future 的 dplyr 查询中收集数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48407666/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com