是否存在不适用于R的SQL数据类型?

use*_*523 5 sql oracle r rodbc

我正在尝试在Rstudio中运行sqlQuery,这似乎导致程序崩溃.我想使用RODBC包从Oracle数据库导入名为包名称和已用时间的名称.当我尝试执行如下的sqlQuery时

dataframe <- sqlQuery(channel,
"select package_name, elapsed_time from fooSchema.barTable")
Run Code Online (Sandbox Code Playgroud)

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

是否存在某些数据类型,例如Interval Day to Second,来自Oracle,一般不在RStudio或R中工作?

Dea*_*gor 5

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

它在E.1节下

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

从更广泛的意义上回到你的问题.基R支持Date,POSIXctPOSIXlt对象.

Dates和POSIXct对象分别存储为自1970年1月1日以来的天数/秒数,而是POSIXlt元素列表.

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