作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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
及其附加参数。我已经尝试过 scan
和 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;"
,我会得到预期的输出。
最佳答案
正如@Andre 所指出的,您正在寻找的函数将 scan
包装在 paste(scan(...), collapse = "")
中:
SOMEFUN <- function(file){
paste(scan(file, sep = "\n", what = "character"), collapse = "")
}
关于mysql - 如何从 .sql 文件发送查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11418920/
我是一名优秀的程序员,十分优秀!