gpt4 book ai didi

sql-server - RODBC 中的 varType 使用

转载 作者:行者123 更新时间:2023-12-02 15:44:22 24 4
gpt4 key购买 nike

我正在通过 RODBC 包(特别是函数 sqlSave)从 ODBC 写入 SQL Server 表。该函数的默认 var 类型似乎是 charvar(255)。我尝试使用文档中列出的 varTypes 参数,但失败了。

这是一个名为 spikes20 的表,具有类结构,这又是我试图通过 sqlSave 保存的内容

sapply(spikes20, class)
Date Day EWW PBR BAC CHTP FB SPY
"Date" "factor" "numeric" "numeric" "numeric" "numeric" "numeric" "numeric"

这是尝试写入 SQL Server 的代码

require(RODBC)
varTypes = c(as.Date="Date")
channel <-odbcConnect("OptionsAnalytics", uid="me", pwd="you")

sqlSave (channel, spikes20, tablename = NULL, append=TRUE, rownames = FALSE, colnames = TRUE, safer = FALSE, addPK = FALSE, varTypes=varTypes )

我收到的错误消息显示:

警告消息:

在 sqlSave( channel ,spikes20,表名 = NULL,追加 = TRUE,行名 = FALSE,: 列 as.Date 'dat' 不在 'varTypes' 的名称中

我尝试将 varType 更改为:

varTypes=c(Date="Date")

然后错误消息变为:

Error in sqlSave(channel, spikes20, tablename = NULL, append = TRUE, rownames = FALSE,  : 
[RODBC] Failed exec in Update
22007 241 [Microsoft][ODBC SQL Server Driver][SQL Server]Conversion failed when converting date and/or time from character string.

任何帮助将不胜感激。看来我无法解读正确使用 varTypes...

最佳答案

首先,您真的想追加到名为 NULL 的表吗?

就 varTypes 的问题而言,根据我的经验,我必须为数据框中的所有变量提供映射,即使 varTypes 参数的文档说:

“一个可选的命名字符向量,给出要用于的 DBMS 数据类型如果要创建表格,则需要一些(或全部)列”

您需要确保 varTypes 向量的名称是列名称,值是建议的数据类型 here 。因此,按照他们的示例,您将得到:

tmp <- sqlColumns(channel, correctTableName)
varTypes = as.character(tmp$TYPE_NAME)
names(varTypes) = as.character(tmp$COLUMN_NAME)

关于sql-server - RODBC 中的 varType 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22109972/

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