我RMySQL用来查询数据库.
我用了
df <- fetch(dbSendQuery(con, "SELECT some_col from some_table"))
并收到这条消息:
Error in fetch(dbSendQuery(con, "SELECT some_col from some_table")) :
error in evaluating the argument 'res' in selecting a method for function 'fetch': Error in .local(conn, statement, ...) :
connection with pending rows, close resultSet before continuing
Run Code Online (Sandbox Code Playgroud)
奇怪的df是,实际上是创造了; 500 obs. of 1 variables它确实让我回到了我对这500个人的预期.
该表some_table有292,000行,对于R来说应该不是问题.
我在我的模式中尝试了各种其他表(例如
some_other_table),并得到了相同的结果.所以它似乎与fetch功能本身有关.
dbGetQuery,并dbFetch没有成功. 这个错误是什么意思,我怎样才能获得表中的所有行?
跟进
我发现我可以通过使用来啜饮整张桌子
dbReadTable(con, 'some_table')
你所看到的是正常行为.这些RMySQL实现仅检索n记录,如果n缺少,则只返回fetch.default.recMySQL调用中指定的值(默认为500).
要返回所有使用的行n = -1.
此外,为整个查询字符串指定一个名称,然后将该名称传递给您的fetch()语句非常有用.
drv <- dbDriver("MySQL")
con <- dbConnect(drv, user = "username", password="password1",
host = "localhost", dbname="database")
res <- dbSendQuery(con, statement = paste(
"SELECT some_column1, some_column2",
"FROM some_table",
"WHERE some_column2 >= x",
"ORDER BY some_column1"))
data1 <- fetch(res, n = -1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4999 次 |
| 最近记录: |