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, ...)Corresponding SQL type for the obj.
A driver connection object, as returned by dbConnect().
An R object.
Additional arguments passed to methods.
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")
dbGetInfo(con)$dbms.name
#> [1] "foo"`odbcDataType.foo <- function(con, obj, ...) {
switch_type(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)
)
}
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.