postgres-query {RPostgres} | R Documentation |
Execute a SQL statement on a database connection
Description
To retrieve results a chunk at a time, use dbSendQuery()
,
dbFetch()
, then dbClearResult()
. Alternatively, if you want all the
results (and they'll fit in memory) use dbGetQuery()
which sends,
fetches and clears for you.
Usage
## S4 method for signature 'PqResult'
dbBind(res, params, ...)
## S4 method for signature 'PqResult'
dbClearResult(res, ...)
## S4 method for signature 'PqResult'
dbFetch(res, n = -1, ..., row.names = FALSE)
## S4 method for signature 'PqResult'
dbHasCompleted(res, ...)
## S4 method for signature 'PqConnection'
dbSendQuery(conn, statement, params = NULL, ..., immediate = FALSE)
Arguments
res |
Code a PqResult produced by
|
params |
A list of query parameters to be substituted into
a parameterised query. Query parameters are sent as strings, and the
correct type is imputed by PostgreSQL. If this fails, you can manually
cast the parameter with e.g. |
... |
Other arguments needed for compatibility with generic (currently ignored). |
n |
Number of rows to return. If less than zero returns all rows. |
row.names |
Either If A string is equivalent to For backward compatibility, |
conn |
A PqConnection created by |
statement |
An SQL string to execute. |
immediate |
If |
Multiple queries and statements
With immediate = TRUE
, it is possible to pass multiple queries or statements,
separated by semicolons.
For multiple statements, the resulting value of dbGetRowsAffected()
corresponds to the total number of affected rows.
If multiple queries are used, all queries must return data with the same
column names and types.
Queries and statements can be mixed.
Examples
library(DBI)
db <- dbConnect(RPostgres::Postgres())
dbWriteTable(db, "usarrests", datasets::USArrests, temporary = TRUE)
# Run query to get results as dataframe
dbGetQuery(db, "SELECT * FROM usarrests LIMIT 3")
# Send query to pull requests in batches
res <- dbSendQuery(db, "SELECT * FROM usarrests")
dbFetch(res, n = 2)
dbFetch(res, n = 2)
dbHasCompleted(res)
dbClearResult(res)
dbRemoveTable(db, "usarrests")
dbDisconnect(db)