cnb*_*ger 5 postgresql r dbi rpostgresql
下面是我在 R 中用于从 PostgreSQL 数据库中提取 ID 的代码片段。当我运行该函数时,我从 R 收到以下警告消息:
在 result_create(conn@ptr, statements) 中:关闭打开的结果集,取消之前的查询
options(warn=-1)如何避免出现此警告消息而不在代码开头 使用,抑制警告而不是
con <- dbConnect(RPostgres::Postgres(),
user = "postgres",
dbname = "DataBaseName",
password = "123456",
port = 5431)
get_id <- function(connection, table){
query <- toString(paste("SELECT id FROM ", table, sep = ""))
data_extract_query <- dbSendQuery(connection, query)
data_extract <- dbFetch(data_extract_query)
return(data_extract)
}
get_id(con, "users")
Run Code Online (Sandbox Code Playgroud)
我找到了解决问题的方法。
我在 GitHub 上找到了 RSQLite 的线程https://github.com/r-dbi/RSQLite/issues/143。在这个线程中,他们n = -1在dbFetch()函数中显式设置。
这似乎解决了我的问题,并且通过编辑如下代码,警告消息没有再次出现:
data_extract <- dbFetch(data_extract_query, n = -1)
的含义n是查询应返回的行数。通过将此设置为-1将检索所有行。默认情况下,它设置为,n = -1但由于某种原因,在此版本的 R (3.6.3) 中仍会显示警告。
在R中调用?dbFetch你可以看到更多这方面的信息。我添加了 R 帮助页面中的一个片段:
用法
dbFetch(res, n = -1, ...)
fetch(res, n = -1, ...)论据
res继承自 DBIResult 的对象,由 dbSendQuery() 创建。
n每次获取要检索的最大记录数。使用 n = -1 或 n = Inf 检索所有待处理记录。某些实现可能会识别其他特殊值。
...其他参数传递给方法。
| 归档时间: |
|
| 查看次数: |
3345 次 |
| 最近记录: |