失败后如何从未来的 dplyr 查询中收集数据?
How to collect data from future dplyr query after one fails?
当我尝试从 SQL 服务器数据库收集大量数据时,我经常会收到来自 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
每当我尝试从数据库中的 table 收集数据时。这一直持续到我重新启动我的 R 会话。
有没有人以前见过这种行为或者可以提供解决方法?
肯定会出现此错误的一种情况:
当 table 中有 varchar
类型列时。
您可以通过单击 rstudio 中的连接窗格,转到相关 table 并检查列类型来检查这一点。
如果麻烦的列是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 服务器数据库收集大量数据时,我经常会收到来自 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
每当我尝试从数据库中的 table 收集数据时。这一直持续到我重新启动我的 R 会话。
有没有人以前见过这种行为或者可以提供解决方法?
肯定会出现此错误的一种情况:
当 table 中有 varchar
类型列时。
您可以通过单击 rstudio 中的连接窗格,转到相关 table 并检查列类型来检查这一点。
如果麻烦的列是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()
应该可以。