2015-04-27 26 views
1

我无法从knitr块查询SQL数据库。我可以建立连接,查询在R会话中工作,但在从RStudio编织时会无限期挂起。knitr和SQL查询


--- 
title: "Untitled" 
author: "XXXXX XXXXXXXXX" 
date: "Monday, April 27, 2015" 
output: html_document 
--- 

TEST TEST 

```{r} 

library(RJDBC) 

jd<-JDBC(driverClass = "com.osisoft.jdbc.Driver",classPath = "C://Program Files (x86)//PIPC//JDBC//PIJDBCDriver.jar") 

piDB<-dbConnect(drv = jd,"jdbc:pisql://XX.XXX.XX.XX/Data Source=XXX;Integrated Security=SSPI") 

sql1<-"SELECT * FROM pipoints" 

sql.dat <- dbGetQuery(piDB, sql1) 

dbDisconnect(piDB) 

print('Success') 
``` 

回答

0

如果你可以使用不同的连接驱动程序,尝试ODBC。

RODBC正常工作与knitr在RStudio:

```{r} 
library(RODBC) 
myconn = odbcConnect('myServer') 
myquery = paste0("")      #add some query 
data = sqlQuery(myconn, myquery) 
head(data) 
``` 
+0

在一个侧面说明,在很多情况下人们可以使用DSN的连接,即没有设置ODBC条目。也许,[这可能有所帮助](https://techsupport.osisoft.com/Troubleshooting/KB/3234OSI8)。 – mlt

0

随着RStudio V1.0,你现在可以直接从您的RMarkdown或RNotebook使用SQL块。我为此使用odbc软件包。我喜欢这样做,因为它避免了在项目中硬编码登录细节,同时仍然创建无需用户输入端到端运行的项目。下面

一个RMarkdown例如:

```{r} 
# Unfortunately, odbc is not on CRAN yet 
# So we will need devtools 
# install.packages(devtools) 
library(devtools) 
devtools::install_github("rstats-db/odbc") 

# Get connection info from the Windows ODBC Data Source Administrator using the name you set manually. 
# If you don't know what this is, just search in the windows start menu for  "ODBC Data Source Administrator" 
con <- dbConnect(odbc::odbc(), 'MyDataWarehouse') 
``` 

```{sql connection = con, output.var = result} 
-- This is sql code, comments need to be marked accordingly 
SELECT * FROM SOMETABLE LIMIT 200; 
``` 

```{R} 
# And the result is available in the next chunk! 
result 
```