odbcDataType: Return the corresponding ODBC data type for an R object

View source: R/DataTypes.R

odbcDataTypeR Documentation

Return the corresponding ODBC data type for an R object


This is used when creating a new table with dbWriteTable(). Databases with default methods defined are

  • MySQL

  • PostgreSQL

  • SQL Server

  • Oracle

  • SQLite

  • Spark

  • Hive

  • Impala

  • Redshift

  • Vertica

  • BigQuery

  • Teradata

  • Access


odbcDataType(con, obj, ...)



A driver connection object, as returned by dbConnect().


An R object.


Additional arguments passed to methods.


If you are using a different database and dbWriteTable() fails with a SQL parsing error the default method is not appropriate, you will need to write a new method.


Corresponding SQL type for the obj.

Defining a new dbDataType method

The object type for your connection will be the database name retrieved by dbGetInfo(con)$dbms.name. Use the documentation provided with your database to determine appropriate values for each R data type. An example method definition of a fictional foo database follows.

con <- dbConnect(odbc::odbc(), "FooConnection")
#> [1] "foo"

`odbcDataType.foo <- function(con, obj, ...) {
    factor = "VARCHAR(255)",
    datetime = "TIMESTAMP",
    date = "DATE",
    binary = "BINARY",
    integer = "INTEGER",
    double = "DOUBLE",
    character = "VARCHAR(255)",
    logical = "BIT",
    list = "VARCHAR(255)",
    stop("Unsupported type", call. = FALSE)

odbc documentation built on July 9, 2023, 7:04 p.m.