这有意义吗?否则我没有看到错误。
使用RODBC,R为发出包含字段ID = Order的表的sqlQuery语句返回'Could not SQLExecDirect'错误。 SQL否则有效。然而,我可以使用sqlFetch将整个表读取到df(见下文)。
目标数据库位于SQL Server上。
表结构示例:
Taxon_Id = c(3000,3001,3002)
Group_Id = c(6,5,5)
Type = c('Fish','Fish','Fish')
Order = c('Petromyzontidae','Acipenseridae','Clupeidae')
Family = c('Petromyzontidae','Acipenseridae','Clupeidae')
txn = data.frame(Taxon_Id,Group_Id,Type,Order,Family)
发布到表的SQL示例:
txn2<-as.data.frame(sqlQuery(channel, paste('SELECT T.Taxon_Id,
T.GroupId,
T.Type,
T.Order,
T.Family
FROM Taxon T
ORDER BY 1
')) )
sqlFetch可以无错误地读取所有表字段。
txn<-as.data.frame(sqlFetch(channel,"Taxon"))
感谢您的评论。
答案 0 :(得分:1)
这是您的查询:
SELECT T.Taxon_Id, T.GroupId, T.Type, T.Order, T.Family
FROM Taxon T
ORDER BY 1
在SQL(通常)和SQL Server(特别是)中,单词Order
是保留字。你需要用双引号或方括号来逃避它:
SELECT T.Taxon_Id, T.GroupId, T.Type, T.[Order], T.Family
FROM Taxon T
ORDER BY 1