1

我正在尝试使用驱动程序将数据帧插入 MonetDB DBI::dbWriteTable()MonetDBLite并且必须调整 MonetDB 表和 R 数据帧中的列类型。

我想知道是否存在从 R 到 MonetDB 的数据类型映射。例如,我知道(或假设)characterR 中的向量应该映射到 MonetDB 的CHAR(n), CHARACTER(n), VARCHAR(n), CHARACTER VARYING(n), TEXT, CLOB, CHARACTER LARGE OBJECT或 列,STRING然后返回。

有这方面的官方文件吗?谷歌没有发现任何东西。

4

1 回答 1

2

有一个DBI函数dbDataType确定 R 对象的数据库类型。MonetDBLite 驱动程序实现了这个功能。例如,

> library("DBI")
> con <- dbConnect(MonetDBLite::MonetDBLite())
> dbDataType(con, "asdf")
[1] "STRING"
> dbDataType(con, 1L)
[1] "INTEGER"
> dbDataType(con, 1)
[1] "DOUBLE PRECISION"

如果您对反向感兴趣,即从数据库类型创建的 R 类型,MonetDBLite 驱动程序中还有一个(私有)函数可以执行此操作。

> MonetDBLite:::monetdbRtype("BOOLEAN")
  BOOLEAN 
"logical" 
于 2018-01-07T11:06:55.780 回答