我想从 tbl_dbi 中提取 SQL 并将其保存为字符向量。
我已经尝试过
library(dplyr)
my_tbl_dbi <- tbl(conn, "myTable")
my_query <- capture.output(show_query(my_tbl_dbi), type = message) %>%
paste0(collapse = " ")
这在过去对我有用,但现在不起作用,也许是因为我正在使用接收器功能。我的问题是“是否有更强大/标准的方法来从 tbl_dbi 中提取 SQL 查询,或者我正在做的事情是唯一的方法吗?”
最佳答案
as.character(db_sql_render(my_tbl_dbi$src$con, my_tbl_dbi))
注意:
methods("show_query")
## [1] show_query.tbl_lazy* show_query.tbl_sql*
dbplyr:::show_query.tbl_sql
## function (x, ...)
## {
## message("<SQL>\n", db_sql_render(x$src$con, x))
## invisible(x)
## }
## <environment: namespace:dbplyr>
db_sql_render.DBIConnection()
的来源:
db_sql_render.DBIConnection <- function(con, sql, ...) {
qry <- sql_build(sql, con = con, ...)
sql_render(qry, con = con, ...)
}
关于sql - 从 tbl_dbi 中提取 SQL 作为字符串的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47000581/