是否有 SQL 数据类型不适用于 R?

Are there SQL datatypes that don't work with R?

我正在尝试 运行 Rstudio 中的 sqlQuery,它似乎会使程序崩溃。我想使用 RODBC 包从 Oracle 数据库导入一个名为包名和运行时间的名称。当我尝试执行如下所示的 sqlQuery

dataframe <- sqlQuery(channel,
"select package_name, elapsed_time from fooSchema.barTable")

当我 运行 使用 package_name 或 table 中的其他字段时,它工作正常。如果我尝试使用 elapsed_time 运行,RStudio 会崩溃。 elapsed_time 的数据类型是 INTERVAL DAY (3) TO SECOND (6) 所以一条记录看起来像这样,“+000 00:00:00.22723”

是否有某些数据类型(例如 Interval Day to Second)来自 Oracle,但通常在 RStudio 或 R 中不起作用?

问题不在于 R、Rstudio,甚至 RODBC。问题是 Oracle 不支持 ODBC 连接的间隔数据类型。

在 E.1 部分下

https://docs.oracle.com/cd/B28359_01/server.111/b32009/app_odbc.htm#CIHBFHCG

从更一般的意义上回到你的问题。 Base R 支持 DatePOSIXctPOSIXlt 对象。

自 1/1/1970 以来,

Dates 和 POSIXct 对象分别存储为 days/seconds 的数量,而 POSIXlt 是元素列表。

无论您使用什么 SQL 连接器,都需要将日期和时间的 SQL 版本强制转换为上述版本之一。有时它只会转换为字符串。例如,对于 RPostgreSQL,它会将存储为 Postgre Date 类型的列作为字符,但 Postgres timestamp 列将直接强制转换为 POSIXct。