我正在使用R包monitoR并收到一条我无法弄清楚的错误消息。
我正在尝试使用dbUploadTemplate命令将关联模板列表(“bithTemps”)上传到MySQL数据库(“noh”)。
dbUploadTemplate(templates = bithTemps,
uid = "root",
pwd = "****",
db.name = "noh",
analyst = 1,
locationID = "2",
date.recorded = "2017/09/07",
recording.equip = "Unknown",
species.code = "BITH",
type = "COR")
返回:
错误:$运算符对原子矢量无效
我已经确认ODBC连接正在运行,模板列表正常运行(即,当调用包中的其他参数时它可以工作),并且SQL数据库具有分析器,位置和种类代码所需的条目。
答案 0 :(得分:0)
似乎这个错误实际上是由非功能性ODBC连接触发的。这部分dbUploadTemplate函数
species <- RODBC::sqlQuery(dbCon, paste("SELECT `pkSpeciesID`, `fldSpeciesCode` FROM `tblSpecies` WHERE `fldSpeciesCode` = '",
paste(species.code, sep = "", collapse = "' OR `fldSpeciesCode` = '"),
"'", sep = ""))
查询SQL数据库中的表并返回一个名为“species”的对象。如果查询失败(例如,因为RODBC无法连接),则“种类”为空,并执行以下操作
speciesID <- NULL
for (i in 1:length(species.code)) {
speciesID[i] <- species$pkSpeciesID[species$fldSpeciesCode ==
species.code[i]]
}
触发错误。修复ODBC连接可以解决错误。