背景:
我正在使用 RMySQL 来查询数据库;我已经用带引号的字符串成功地做到了这一点,但我现在想从 .sql 文件发送更长的查询。
sql文件在mypackage/inst/extdata/myquery.sql
问题:
myquery.sql从数据库导入查询并将其提交到数据库的最佳方式是什么?
我试过的:
这是我正在处理的功能:
library(RMySQL)
library(mypackage)
myqueryfun <- function(...){
file <- system.file("extdata", "myquery.sql", package = "mypackage")
query <- SOMEFUN(file)
con <- dbConnect(...)
q <- dbSendQuery(con, query)
result <- fetch(q, n = -1)
return(result)
}
所以,我正在寻找函数SOMEFUN及其附加参数。我已经尝试过scanand readLines,并且我尝试过对这些函数使用不同的参数,例如scan(file, sep = '\n', what = 'character')我得到的最接近的是writeLines(readLines(file)),但是我得到了一些与解析文件相关的错误,例如对以下内容的响应writeLines(readLines()):
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function "dbSendQuery", for signature "MySQLConnection", "NULL"
Called from: stop("unable to find an inherited method for function \"", fdef@generic,
"\", for signature ", cnames)
如果查询是长度为 1 的字符向量,例如"show tables;",我会得到预期的输出。