这是一个新的,我没有在其他stackoverflow网站上找到任何提及。
所以我在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"
我之前从未见过这个错误。有关它可能来自哪里的任何建议?任何帮助将不胜感激。
答案 0 :(得分:1)
请不要交叉发帖。我刚刚回复了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>
答案 1 :(得分:1)
如果这对其他人有帮助,我收到了类似的错误:
“无法为签名”PostgreSQLConnection“找到函数
dbIsValid
的继承方法
当我无意中忘记将 dbConnect 调用的结果分配给连接对象时,就发生了这种情况。
所以这不起作用:
数据库连接(...)
但是这样做了:
con&lt; - dbConnect(...)
答案 2 :(得分:1)
我遇到了与你相同的问题。我的解决方案是删除&#34; DBI&#34;打包并重新安装。这个对我有用。但它可能不适合你。你可以尝试:
remove.packages("DBI")
install.packages("DBI")