我试图使用RPostgreSQL和R v2.14.2将表读入R。
我的RPostgreSQL版本列为0.3-2,2012年5月16日下载。
我的DBI版本被列为0.2-5,2012年5月16日下载。
我可以打开数据库,列出表格。我要打开的表显然是存在的,但是,当我试图读取它时,会收到一条错误消息。我不确定错误是在我的代码中还是在数据库的设置方式中。

library(RPostgreSQL)
# Loading required package: DBI
drv <- dbDriver("PostgreSQL")
con <- dbConnect(drv, host = 'freda.freda.com', dbname = 'test', user = 'fredak', password = 'xxxx')

dbListTables(con)
# [1] "chemistry”
# [2] "ecog”
# [3] "hematology"

dbExistsTable(con, "ecog")
# [1] FALSE

MyTable <- dbReadTable(con, "ecog")
# Error in postgresqlExecStatement(conn, statement, ...) :
#   RS-DBI driver: (could not Retrieve the result : ERROR:  relation "ecog" does not exist
# LINE 1: SELECT * from "ecog"
#                       ^
# )
# Error in names(out) <- make.names(names(out), unique = TRUE) :
#   attempt to set an attribute on NULL
# In addition: Warning message:
# In postgresqlQuickSQL(conn, statement, ...) :
#   Could not create executeSELECT * from "ecog"

最佳答案

如果要与命名架构中的表交互,请使用以下(unintive)语法:

dbExistsTable(con, c("schema_name", "table_name"))
[1] TRUE

尽管dbListTables(con)返回所有不带关联模式的表名,但这仍然有效。

关于r - 为什么我的表被dbListTables列出,但为什么我不能读取它?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10641519/

10-13 07:24