2017-09-15 65 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連接可解決錯誤。