通常当我尝试从SQL Server数据库中收集大量数据时,我会从nanodbc
驱动程序收到一条神秘的错误消息。例如,
library(dplyr)
res <- collect(tbl(con, "result"))
result_fetch中的错误(res @ ptr,n,...):nanodbc / nanodbc.cpp:2525:08S01:[Microsoft] [SQL Server的ODBC驱动程序11] SSL提供程序:[错误
结果已经清除
从那时起,我收到了错误
错误:&#39; SELECT * FROM&#34;结果&#34; AS&#34; zzz13&#34;在哪里(0 = 1)&#39; nanodbc / nanodbc.cpp:1587:08S01:[Microsoft] [SQ的ODBC驱动程序11
每当我尝试从数据库中的表中收集数据时。这一直持续到我重新启动R会话。
有没有人见过这种行为或者可以提供解决方法?
答案 0 :(得分:2)
肯定会发生此错误的一种情况:
当表格中有varchar
类型的列时。
您只需在rstudio中的“连接”窗格上单击,转到相关表并检查列类型即可进行检查。
如果麻烦的列是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()
应该工作。