RPostgreSQL访问数据库,错误:无法找到函数“show”的继承方法,签名为“PostgreSQLConnection”

时间:2012-09-24 21:30:27

标签: r postgresql rpostgresql

这是一个新的,我没有在其他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"

我之前从未见过这个错误。有关它可能来自哪里的任何建议?任何帮助将不胜感激。

3 个答案:

答案 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")