1

当我DBI从 0.5.1 升级到 0.6 时,每当我调用 dbReadTable 时:

mv = dbReadTable(conn, "MOVIES")
driver = JDBC("oracle.jdbc.OracleDriver", classPath = class_path)n
conn = dbConnect(driver, 
           myhost, 
           username, password)

它会产生一个错误,例如:

Error in (function (classes, fdef, mtable) : unable to find an inherited method for function ‘dbGetQuery’ for signature ‘"character", "missing"’
Traceback:

1. dbReadTable(conn, SQL("MOVIES"))
2. dbReadTable(conn, SQL("MOVIES"))
3. .local(conn, name, ...)
4. dbGetQuery(paste0("SELECT * FROM ", sql_name))
5. (function (classes, fdef, mtable) 
 . {
 .     methods <- .findInheritedMethods(classes, fdef, mtable)
 .     if (length(methods) == 1L) 
 .         return(methods[[1L]])
 .     else if (length(methods) == 0L) {
 .         cnames <- paste0("\"", vapply(classes, as.character, 
 .             ""), "\"", collapse = ", ")
 .         stop(gettextf("unable to find an inherited method for function %s for signature %s", 
 .             sQuote(fdef@generic), sQuote(cnames)), domain = NA)
 .     }
 .     else stop("Internal error in finding inherited methods; didn't return a unique method", 
 .         domain = NA)
 . })(list("character", structure("missing", package = "methods")), 
 .     structure(function (conn, statement, ...) 
 .     standardGeneric("dbGetQuery"), generic = structure("dbGetQuery", package = "DBI"), package = "DBI", group = list(), valueClass = character(0), signature = c("conn", 
 .     "statement"), default = `\001NULL\001`, skeleton = (function (conn, 
 .         statement, ...) 
 .     stop("invalid call in method dispatch to 'dbGetQuery' (no default method)", 
 .         domain = NA))(conn, statement, ...), class = structure("standardGeneric", package = "methods")), 
 .     <environment>)
6. stop(gettextf("unable to find an inherited method for function %s for signature %s", 
 .     sQuote(fdef@generic), sQuote(cnames)), domain = NA)

dbGetQuery 一切正常。发生什么了?

4

1 回答 1

1

这似乎是DBI包中的一个问题,很快就会修复。DBI 0.6-1 和更高版本应该不再有这个问题了。您介意在https://github.com/rstats-db/DBI/issues提交问题吗?

于 2017-03-31T11:44:02.827 回答