我需要在我的Rmarkdown中执行一个SQL引擎块,在查询的 表格 具有动态名称,由R代码定义。
我知道使用?
将变量链接到当前的R环境是可行的,但这仅适用于字符串和数字,而不适用于 "对象"。
当然,我可以使用DBI::dbGetQuery()
运行SQL查询,但这意味着必须将所有请求(非常长)作为字符串构建,这很不方便(我要运行很多块)。
基本上我需要的是:
`` {r}
mytable <- "name_of_table_on_sql_server"
``
那么
`` {sql}
select * from ?mytable
``
这个失败是因为创建的查询是select * from "name_of_table_on_sql_server"
,而 SQL 需要select * from name_of_table_on_sql_server
(没有引号)。
使用glue
将 mytable 定义为mytable <- glue("name_of_table_on_sql_server")
也不起作用。
有什么想法吗?
mytable <- noquote("name_of_table_on_sql_server")
。 - maydinglue()
或as.name()
相同的错误:Error in interpolate_from_env(conn, sql) : Object(s) not found: " name_of_table_on_sql_servers " Failed to execute SQL chunk
(注意表名周围的空格?) - Jrm_FRL