gpt4 book ai didi

RODBC查询调整

转载 作者:行者123 更新时间:2023-12-04 04:08:08 25 4
gpt4 key购买 nike

我正在尝试使用RODBC将数据从我们的Oracle数据集市提取到R中。我已经能够解决一些问题,但是我有一个基本问题。

如何保留数据库中的格式?

使用以下命令

uapp <- sqlQuery(ch, SQL, stringsAsFactors=F)

我的数据已按预期方式检索,但是某些字段在应为字符的情况下会在R中一次转换为数字和逻辑。我可以使用以下方法解决此问题:
uapp <- sqlQuery(ch, SQL, stringsAsFactors=F, as.is=T)

但是当我希望它们成为“日期”时,我“丢失”了列,将其格式化为日期。

最佳答案

您也陷入了我一直在努力的空白。我不能对“正确”或“最佳”的观点,而只能对过去的观点。

我通常会执行第一个示例中的操作,一旦处理到R中,就只处理类型更改。如果要使用后一种方法,则可以将日期转换为R后再转换日期。我的Oracle系统似乎总是已设置最多返回“22-NOV-10”格式的日期,这很烦人。因此,我将在查询中使用Oracle to_char()函数将日期格式设置为R可以轻松识别的格式。

因此,例如,我的SELECT语句中可能包含以下内容:

to_char(myDate, 'yyyy-mm-dd') as myDate

然后将其放入名为myData的数据帧中并执行以下操作:
myData$properDate <- strptime(myData$myDate, "%Y-%m-%d")

是处理日期固定还是其他字段固定,实际上取决于第一个方法弄乱了多少个日期字段和几个非日期字段。但是以我的经验,我要么最终解决一个问题,要么另一个问题。

使用方法1时可能需要考虑的事项:尝试在SQL中使用cast(),以将字段强制为特定类型。我唯一一次在RODBC上修改数据类型时遇到麻烦是在服务器端该类型不明确时。这通常是CASE语句或SQL端的某种结果。

关于RODBC查询调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4249184/

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