Как экранировать символы в коде SQL в блоке R Markdown? - PullRequest
2 голосов
/ 27 января 2020
```
{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"

Я пытаюсь запустить код SQL в блоке R Markdown, как показано выше. Я получаю ошибку "неожиданный символ", показанную выше. Мое лучшее предположение состоит в том, что мне нужно экранировать подчеркивание с помощью чего-то, например \_ или \\_, но ни одно из них не устраняет мою ошибку go.

Если я вместо этого запрашиваю с использованием DBI (показано ниже) Я не получаю никаких ошибок:

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

Может быть, функция dbGetQuery способна правильно интерпретировать такие вещи, как подчеркивание _, тогда как обычный синтаксический анализатор R Markdown не может? Или, может быть, есть пробелы, которые были скопированы / вставлены как странные символы Юникода, которые снова может dbGetQuery интерпретировать, в то время как обычный синтаксический анализатор R Markdown не может?

Каков вероятный виновник и что мне делать? поделать?

1 Ответ

2 голосов
/ 27 января 2020

Ваш заголовок чанка, вероятно, должен быть

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

вместо

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

...