如何在R Markdown块中的SQL代码中转义字符?

问题描述 投票:1回答:1
```
{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
library(tidyverse)
library(odbc)
library(DBI)
library(dbplyr)
```

```{sql, connection=con, output.var="df"}
SELECT DB_Fruit.Pear, Store.Name, Cal.Year, Sales.Qty FROM DB_Fruit
```
#> Error: unexpected symbol in "SELECT DB_Fruit.Pear"

如上所述,我试图在R Markdown块中运行SQL代码。我收到上面显示的“意外符号”错误。我最好的猜测是,我需要使用\_\\_之类的字符来使下划线转义,但是这些都不会使我的错误消失。

如果我改为使用DBI查询(如下所示),则不会出现任何错误:

df <- dbGetQuery(con,'
  SELECT DB_Fruit.Pear, Store.Name, Cal.Year, Sales.Qty 
  FROM DB_Fruit
')

也许dbGetQuery函数能够正确解释下划线_之类的东西,而常规R Markdown解析器不能?还是可能有一些空格已被复制/粘贴为一些奇怪的Unicode字符,dbGetQuery函数可以再次解释这些字符,而常规R Markdown解析器则不能?

可能的罪魁祸首是什么,我该怎么办?

sql r r-markdown dbi dbplyr
1个回答
2
投票
您的块标题可能应该是

{SQL, connection=con, output.var="df"}

代替

{r SQL, connection=con, output.var="df"}

© www.soinside.com 2019 - 2024. All rights reserved.