R dbplyr SQL错误“预期Database_Name和LIMIT之间存在某些错误”

时间:2019-12-06 22:06:44

标签: sql r dbplyr

这是我们正在使用的连接:

con <- DBI::dbConnect(odbc::odbc(),
                      Driver = "[your driver's name]",
                      Host   = "[your server's path]",
                      DBCName = "[IP Address or Alias]"
                      UID    = rstudioapi::askForPassword("Database user"),
                      PWD    = rstudioapi::askForPassword("Database password"))

下面的命令在我的代码中可以正常工作,没有错误,并且输出看起来正确:

table1 <- tbl(con, "SAP_PRD_QMEL_ACQ")

但是,当我运行此行代码时,出现以下错误:

table2 <- DBI::dbGetQuery(con, "SELECT * FROM SAP_PRD_QMEL_ACQ LIMIT 5")

#> Error in new_result(connection@ptr, statement) : 
#>   nanodbc/nanodbc.cpp:1344: 42000: [Teradata][ODBC Teradata Driver]
#> [Teradata Database](-3706)Syntax error: expected something between the word 
#> 'SAP_PRD_QMEL_ACQ' and the 'LIMIT' keyword.

当我创建简单的repro尝试并复制错误时,我空手而归。为什么我会收到这个“在Database_Name和LIMIT之间期望某些错误” 错误?

1 个答案:

答案 0 :(得分:2)

无法重现您的问题,但我相信您将需要使用TOP而不是LIMIT

table2 <- DBI::dbGetQuery(con, "SELECT TOP 5 * FROM SAP_PRD_QMEL_ACQ")