dbUploadTemplate上的R包monitoR错误[pkg-monitor]

时间:2017-09-15 19:44:54

标签: mysql r

我正在使用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数据库具有分析器,位置和种类代码所需的条目。

1 个答案:

答案 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连接可以解决错误。