Использование tbl с in_schema создает синтаксическую ошибку с использованием FreeTDS
Я пытаюсь создать ленивую таблицу, чтобы использовать dplyr
SQL Server в Shiny Server на Ubuntu с помощью tbl
бросает синтаксическую ошибку.
library(dbplyr)
library(dplyr)
library(pool)
library(DBI)
pool <- dbPool(odbc::odbc(),
driver = "FreeTDS",
server = "server",
database = "database",
uid = "uid",
pwd = "password",
port = 1433)
data <- tbl(pool, in_schema("schema.dbo", "table"))
Error: <SQL> 'SELECT *
FROM schema.dbo.table AS "zzz1"
WHERE (0 = 1)'
nanodbc/nanodbc.cpp:1587: 42000: [FreeTDS][SQL Server]Incorrect syntax near 'zzz1'.
Код выполняется без ошибок в среде Windows, и сгенерированный оператор SQL успешно выполняется при выполнении в SQL. Объект пула также успешно установил соединение, так как в журналах отображается выполненный запрос из "блестящего".
Я также проверил правильность информации о соединении в файлах odbc.ini и odbcinst.ini.
Известна ли проблема использования dplyr с драйвером FreeTDS для работы с SQL Server?
0 ответов
Это запоздалый ответ, но, надеюсь, он кому-то поможет.
См. Этот вопрос на github dbplyr для ответа.
Бег DBI::dbExecute(pool, "SET QUOTED_IDENTIFIER ON")
должен решить вашу проблему.
Спасибо JakeRuss и hadley (в ссылке на проблему github dbplyr выше) за их работу по отладке этого.