gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 19:03:13 24 4
gpt4 key购买 nike

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

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

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

是否有某些数据类型(例如间隔天到秒)来自 Oracle,但它们通常在 RStudio 或 R 中不起作用?

最佳答案

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

它在 E.1 节下

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

从更一般的意义上回到你的问题。基础 R 支持 Date , POSIXct , 和 POSIXlt对象。
Date s 和 POSIXct对象分别存储为自 1970 年 1 月 1 日以来的天数/秒数,而 POSIXlt是一个元素列表。

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

关于sql - 是否存在不适用于 R 的 SQL 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31682087/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com