Connecting to Various Database Platforms

An R 'DataBase Interface' ('DBI') compatible interface to various database platforms ('PostgreSQL', 'Oracle', 'Microsoft SQL Server', 'Amazon Redshift', 'Microsoft Parallel Database Warehouse', 'IBM Netezza', 'Apache Impala', 'Google BigQuery', 'Spark', and 'SQLite'). Also includes support for fetching data as 'Andromeda' objects. Uses 'Java Database Connectivity' ('JDBC') to connect to databases (except SQLite).


Build Status CRAN_Status_Badge CRAN_Status_Badge

DatabaseConnector is part of the OHDSI Methods Library.


This R package provides function for connecting to various DBMSs.


  • Create connections to the various database platforms:
    • MicrosoftSQL Server
    • Oracle
    • PostgresSql
    • Microsoft Parallel Data Warehouse (a.k.a. Analytics Platform System)
    • Amazon Redshift
    • Apache Impala
    • Google BigQuery
    • IBM Netezza
    • SQLite
  • Statements for executing queries with
    • Error reporting to file
    • Progress reporting
    • Multiple statements per query
  • Support for fetching data to ffdf objects
  • Insert data frame to a database table
  • Supports the DBI interface
  • Integrates with RStudio's Connections tab


connectionDetails <- createConnectionDetails(dbms="postgresql", 
conn <- connect(connectionDetails)
querySql(conn,"SELECT COUNT(*) FROM person")
insertTable(connection = connection, 
            tableName = "scratch.somedata", 
            data = data, 
            dropTableIfExists = TRUE, 
            createTable = TRUE, 
            tempTable = FALSE, 
            useMppBulkLoad = FALSE)
## bulk data insert with Redshift or PDW
insertTable(connection = connection, 
            tableName = "scratch.somedata", 
            data = data, 
            dropTableIfExists = TRUE, 
            createTable = TRUE, 
            tempTable = FALSE, 
            useMppBulkLoad = TRUE)


DatabaseConnector is an R package using Java's JDBC drivers.

System Requirements

Requires R. Also requires Java 1.6 or higher (Oracle Java is recommended. Issues have been reported when using GCJ.)


Please note that this package requires Java to be installed. If you don't have Java already intalled on your computed (on most computers it already is installed), go to to get the latest version.

To be able to use Windows authentication for SQL Server, you have to install the JDBC driver. Download the .exe from Microsoft and run it, thereby extracting its contents to a folder. In the extracted folder you will find the file sqljdbc_4.0/enu/auth/x64/sqljdbc_auth.dll (64-bits) or sqljdbc_4.0/enu/auth/x86/sqljdbc_auth.dll (32-bits), which needs to be moved to location on the system path, for example to c:/windows/system32.

DatabaseConnector also depends on the OHDSI DatabaseConnectorJars and SqlRender packages.

For Redshift Bulk Mpp inserts, the cloudyR aws S3 pacakge is required.

Getting Started

To install the latest stable version, install from CRAN:


To install the latest development version, install from GitHub:


To download and use the JDBC drivers for BigQuery, Impala, or Netezza, see these instructions.

User Documentation



DatabaseConnector is licensed under Apache License 2.0. The JDBC drivers fall under their own respective licenses.


DatabaseConnector is being developed in R Studio.

Development status

Stable. The code is actively being used in several projects.


  • This project is supported in part through the National Science Foundation grant IIS 1251151.


DatabaseConnector 2.3.0


  1. Adding support for SQLite through RSQLite (mainly for demonstration and testing)

  2. Adding convenience functions renderTranslateExecuteSql, renderTranslateQuerySql, and renderTranslateQuerySql.ffdf

  3. Dropping Starschema BigQuery driver (in favor of newer Simba driver)

  4. Added support for inserting BIGINTs (large interegers stored as numeric in R)

  5. Applying CTAS hack to improve insertion performance for RedShift (was already used for PDW)


  1. Executing multi-statement SQL where one statement returns results no longer causes error.

DatabaseConnector 2.2.1


  1. Now supporting proper insertion and extraction of DATETIME fields


  1. Closing output stream when writing to zip file to avoid orphan file locks
  2. Fixed the problem that Jar file is not detected when setting JDBC driver manually

DatabaseConnector 2.2.0


  1. Checking number of inserted rows after bulk upload, throwing error if not correct
  2. Added convenience function for cross-platform zipping of files and folders

DatabaseConnector 2.1.4


  1. Faster inserts by building batches in Java instead of R

DatabaseConnector 2.1.3


  1. Updated to DBI specification 1.0
  2. Defaulting connect arguments to NULL to prevent missing argument warnings in RStudio


  1. Now generating unique display names for RStudio's Connections tab to prevent problems when opening two connections to the same server.

DatabaseConnector 2.1.2

Changes: initial submission to CRAN

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


5.0.0 by Martijn Schuemie, 2 months ago,

Report a bug at

Browse source code at

Authors: Martijn Schuemie [aut, cre] , Marc Suchard [aut] , Observational Health Data Science and Informatics [cph] , Microsoft Inc. [cph] (SQL Server JDBC driver) , PostgreSQL Global Development Group [cph] (PostgreSQL JDBC driver) , Oracle Inc. [cph] (Oracle JDBC driver) , Amazon Inc. [cph] (RedShift JDBC driver)

Documentation:   PDF Manual  

Apache License license

Imports rJava, SqlRender, methods, stringr, readr, rlang, utils, DBI, urltools, bit64

Suggests aws.s3, R.utils, withr, testthat, DBItest, knitr, rmarkdown, RSQLite, ssh, Andromeda, dplyr

System requirements: Java version 8 or higher (

See at CRAN