Learn R Programming

odbc

The goal of the odbc package is to provide a DBI-compliant interface to ODBC drivers. This makes it easy to connect databases such as SQL Server, Oracle, Databricks, and Snowflake.

The odbc package is an alternative to RODBC and RODBCDBI packages, and is typically much faster. See vignette("benchmarks") to learn more.

Overview

The odbc package is one piece of the R interface to databases with support for ODBC:

Support for a given DBMS is provided by an ODBC driver, which defines how to interact with that DBMS using the standardized syntax of ODBC and SQL. Drivers can be downloaded from the DBMS vendor or, if you’re a Posit customer, using the professional drivers.

Drivers are managed by a driver manager, which is responsible for configuring driver locations, and optionally named data sources that describe how to connect to a specific database. Windows is bundled with a driver manager, while MacOS and Linux require installation of unixODBC. Drivers often require some manual configuration; see vignette("setup") for details.

In the R interface, the DBI package provides a front-end while odbc implements a back-end to communicate with the driver manager. The odbc package is built on top of the nanodbc C++ library. To interface with DBMSs using R and odbc:

You might also use the dbplyr package to automatically generate SQL from your dplyr code.

Installation

Install the latest release of odbc from CRAN with the following code:

install.packages("odbc")

To get a bug fix or to use a feature from the development version, you can install the development version of odbc from GitHub:

# install.packages("pak")
pak::pak("r-dbi/odbc")

Usage

To use odbc, begin by creating a database connection, which might look something like this:

library(DBI)

con <- dbConnect(
  odbc::odbc(),
  driver = "SQL Server",
  server = "my-server",
  database = "my-database",
  uid = "my-username",
  pwd = rstudioapi::askForPassword("Database password")
)

(See vignette("setup") for examples of connecting to a variety of databases.)

dbListTables() is used for listing all existing tables in a database.

dbListTables(con)

dbReadTable() will read a full table into an R data.frame().

data <- dbReadTable(con, "flights")

dbWriteTable() will write an R data.frame() to an SQL table.

dbWriteTable(con, "iris", iris)

dbGetQuery() will submit a SQL query and fetch the results:

df <- dbGetQuery(
  con,
  "SELECT flight, tailnum, origin FROM flights ORDER BY origin"
)

It is also possible to submit the query and fetch separately with dbSendQuery() and dbFetch(). This allows you to use the n argument to dbFetch() to iterate over results that would otherwise be too large to fit in memory.

Copy Link

Version

Install

install.packages('odbc')

Monthly Downloads

51,603

Version

1.6.2

License

MIT + file LICENSE

Issues

Pull Requests

Stars

Forks

Maintainer

Hadley Wickham

Last Published

August 28th, 2025

Functions in odbc (1.6.2)

odbcListColumns

List columns in an object.
odbcConnectionColumns_,Snowflake,character-method

Connecting to Snowflake via ODBC
odbcDataType

Return the corresponding ODBC data type for an R object
odbcConnectionColumns

odbcConnectionColumns
isTempTable

Helper method used to determine if a table identifier is that of a temporary table.
odbc

Connect to a database via an ODBC driver
odbcConnectionActions

List the actions supported for the connection
odbcConnectionIcon

Get an icon representing a connection.
odbc-package

odbc: Connect to ODBC Compatible Databases (using the DBI Interface)
dbListTables,OdbcConnection-method

List remote tables and fields for an ODBC connection
quote_value

Quote special character when connecting
odbcListConfig

List locations of ODBC configuration files
odbcListDrivers

List Configured ODBC Drivers
odbcListObjects

List objects in a connection.
redshift

Helper for Connecting to Redshift via ODBC
odbcPreviewObject

Preview the data in an object.
odbcPreviewQuery

Create a preview query.
odbcSetTransactionIsolationLevel

Set the Transaction Isolation Level for a Connection
odbcListObjectTypes

Return the object hierarchy supported by a connection.
snowflake

Helper for connecting to Snowflake via ODBC
odbcListDataSources

List Configured Data Source Names
DBI-classes

DBI classes
OdbcResult

Odbc Result Methods
SUPPORTED_CONNECTION_ATTRIBUTES

Supported Connection Attributes
DBI-tables

Convenience functions for reading/writing DBMS tables
databricks

Helper for Connecting to Databricks via ODBC
sqlData,OdbcConnection-method

Unimportant DBI methods
OdbcDriver

Odbc Driver Methods
Oracle-class

Oracle
Microsoft SQL Server-class

SQL Server
OdbcConnection-class

Odbc Connection Methods