DBI (version 0.5-1)

dbSendQuery: Execute a query on a given database connection


The function dbSendQuery only submits and synchronously executes the SQL query to the database engine. It does not extract any records --- for that you need to use the function dbFetch, and then you must call dbClearResult when you finish fetching the records you need. For interactive use, you should almost always prefer dbGetQuery.


dbSendQuery(conn, statement, ...)


A DBIConnection object, as produced by dbConnect.
a character vector of length 1 containing SQL.
Other parameters passed on to methods.


An object that inherits from DBIResult. The result set can be used with dbFetch to extract records. Once you have finished using a result, make sure to disconnect it with dbClearResult.

Side Effects

The query is submitted to the database server and the DBMS executes it, possibly generating vast amounts of data. Where these data live is driver-specific: some drivers may choose to leave the output on the server and transfer them piecemeal to R, others may transfer all the data to the client -- but not necessarily to the memory that R manages. See individual drivers' dbSendQuery documentation for details.


This function is for SELECT queries only. Some backends may support data manipulation queries through this function for compatibility reasons. However, callers are strongly advised to use dbSendStatement for data manipulation statements.

See Also

For updates: dbSendStatement and dbExecute.

Other DBIConnection generics: DBIConnection-class, dbDataType, dbDisconnect, dbExecute, dbExistsTable, dbGetException, dbGetInfo, dbGetQuery, dbIsValid, dbListFields, dbListResults, dbListTables, dbReadTable, dbRemoveTable, dbSendStatement


Run this code
con <- dbConnect(RSQLite::SQLite(), ":memory:")

dbWriteTable(con, "mtcars", mtcars)
rs <- dbSendQuery(con, "SELECT * FROM mtcars WHERE cyl = 4;")


Run the code above in your browser using DataLab