我試圖使用preview version of RStudio 1.0中的SQL chunk function連接到SQL Server(對於DBI使用RSQLServer後端),並且在傳遞變量時遇到一些困難。將查詢作爲變量傳遞給Rmarkdown sql chunk
如果我連接到服務器,然後把它按預期工作
```{r, eval = F}
svr <- dbConnect(RSQLServer::SQLServer(), "Server_name", database = 'Database_name')
query <- 'SELECT TOP 10 * FROM Database_name.dbo.table_name'
```
```{sql, connection = svr, eval = F}
SELECT TOP 10 * FROM Database_name.dbo.table_name
```
但大塊的查詢,如果我嘗試查詢傳遞,因爲它拋出一個錯誤
```{sql, connection = svr, eval = F}
?query
```
Error: Unable to retrieve JDBC result set for 'SELECT TOP 10 * FROM Database_name.dbo.table_name': Incorrect syntax near 'SELECT TOP 10 * FROM Database_name.dbo.table_name'.
Failed to execute SQL chunk
變量
我認爲這與R用引號括起字符向量的方式有關,因爲如果我運行下面的代碼,我會得到相同的錯誤。
```{sql, connection = svr, eval = F}
'SELECT TOP 10 * FROM Database_name.dbo.table_name'
```
有沒有辦法解決這個錯誤?
目前我可以通過using inline expressions to print the query,using the pygments for highlighting達到我想要的效果,並在R塊中用DBI命令運行查詢,所以使用代碼塊會更好一些。
這將以比我的問題中描述的更方便的方式突出顯示輸出。但它看起來並沒有運行。 – NGaffney