RODBC连接在R Markdown文档中不起作用

问题描述

在序言之后,我立即将以下代码作为.Rmd文档的一个代码块,以连接到Azure sql Server数据库

# Load packages
library(RODBC)
library(rstudioapi)

# Initialize connection
uid <- showPrompt("Username","Enter your database username:")
pwd <- askForPassword("Enter your database password:")
channel <- odbcConnect("my_dsn",uid,pwd,rows_at_time = 1,believeNRows = FALSE)

# Remove credentials from memory
rm(uid,pwd)

head(sqlQuery(channel = channel,"SELECT * FROM schema.TABLE"))

在.Rmd中,如果我进入此代码块下方并单击“在上方运行所有块”,或者如果我使用Ctrl + Enter运行代码行,则代码可以正常工作。但是,如果我尝试用此代码编织.Rmd,它有效。

Error in sqlQuery(channel = channel,"SELECT * FROM schema.TABLE") : 
  first argument is not an open RODBC channel
Calls: &lt;Anonymous&gt; ... withCallingHandlers -&gt; withVisible -&gt; eval -&gt; eval -&gt; head -&gt; sqlQuery
Execution halted

为什么会这样?


其他信息:我正在使用RStudio 1.3.1056。

> sessionInfo()
R version 4.0.2 (2020-06-22)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19041)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  Grdevices utils     datasets  methods   base     

other attached packages:
[1] rstudioapi_0.11 RODBC_1.3-17   

loaded via a namespace (and not attached):
 [1] compiler_4.0.2  tools_4.0.2     htmltools_0.5.0 yaml_2.2.1      rmarkdown_2.3   knitr_1.29     
 [7] xfun_0.16       digest_0.6.25   rlang_0.4.7     evaluate_0.14  

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)