新的,我在其他堆栈溢出站点上没有找到任何提及这一点的内容。
所以我正在用R编程,并使用RPostgreSQL包访问Postgres 9.1.5数据库。所以我像往常一样创建了与数据库的连接,现在我遇到了一个奇怪的错误。
db.conn = function(){
## This function creates a connection to the database. Subsequent
## functions that access the db will go through this function.
drv = dbDriver("PostgreSQL")
con = dbConnect(drv, user = "user", password = "password", dbname = "dbname", host = "localhost", port = 5432)
return(con)
}
所以当我创建一个对象时:
testdb = db.conn()
对象似乎被创建了,但是当我键入时
testdb
Error in function (classes, fdef, mtable) :
unable to find an inherited method for function "show", for signature "PostgreSQLConnection"
我以前从未见过此错误。关于它可能来自哪里的任何建议?任何帮助将不胜感激。
请不要交叉发布。我也刚刚在RPostgreSQL列表中回复,说这对我来说很好用:
R> library(RPostgreSQL)
Loading required package: DBI
R> drv <- dbDriver("PostgreSQL")
R> con <- dbConnect(drv, user = "edd", password = ".....", dbname = "......",
+ host = "localhost", port = 5432)
R> con
<PostgreSQLConnection:(21267,0)>
R>
如果这对其他人有帮助,我收到了类似的错误:
"找不到签名"PostgreSQLConnection"的函数
dbIsValid
的继承方法
当我无意中忘记将 dbConnect 调用的结果分配给连接对象时,就会发生这种情况。
所以这不起作用:
dbConnect(...)
但这确实做到了:
con <- dbConnect(...)
我遇到了和你一样的问题。我的解决方案是删除"DBI"包并重新安装它。它对我有用。但它可能对你不起作用。您可以尝试:
remove.packages("DBI")
install.packages("DBI")