我正在使用 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")
返回:
Error: $ operator is invalid for atomic vectors
我已确认 ODBC 连接正常工作,模板列表正常工作(即,在调用包中的其他参数时它工作),并且 SQL 数据库具有分析师、位置和物种代码所需的条目.
看来这个错误实际上是由非功能性 ODBC 连接触发的。这部分dbUploadTemplate函数
species <- RODBC::sqlQuery(dbCon, paste("SELECT `pkSpeciesID`, `fldSpeciesCode` FROM `tblSpecies` WHERE `fldSpeciesCode` = '",
paste(species.code, sep = "", collapse = "' OR `fldSpeciesCode` = '"),
"'", sep = ""))
查询 SQL 数据库中的表并返回名为“物种”的对象。如果查询失败(例如,因为 RODBC 无法连接)则 'species' 为空,然后进行以下操作
speciesID <- NULL
for (i in 1:length(species.code)) {
speciesID[i] <- species$pkSpeciesID[species$fldSpeciesCode ==
species.code[i]]
}
触发错误。修复 ODBC 连接可解决错误。
Tôi là một lập trình viên xuất sắc, rất giỏi!