2017-09-15 69 views
1

我正在使用R软件包monitoR,并得到一个我找不到的错误消息。dbUploadTemplate上的R package monitoR错误[pkg-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") 

这将返回:

Error: $ operator is invalid for atomic vectors

我已经证实了ODBC连接是否正常,该模板列表功能(即,它工作时在包中调用其他参数),并且该SQL数据库具有分析员,位置和物种代码所需的条目。

回答

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