使用RODBC从SQL Server提取Group表数据失败,求解决方法
解决RODBC提取SQL Server关键字表名的问题
Group是SQL Server的保留关键字,直接引用会触发语法解析错误,这就是你提取该表失败的核心原因。SQL Server对这类特殊标识符的标准处理方式是用**方括号[]**包裹,而非通用双引号(除非数据库提前开启QUOTED_IDENTIFIER选项,这一步额外配置反而麻烦)。
修改后的代码
直接在SQL语句中用方括号包裹表名即可:
group1 <- sqlQuery(ch, "SELECT * FROM asb.[Group]")
如果需要动态拼接表名的场景,确保方括号正确嵌入:
target_table <- "Group" query <- paste0("SELECT * FROM asb.[", target_table, "]") group1 <- sqlQuery(ch, query)
补充提示
如果之前尝试过双引号无效,是因为RODBC默认会话下SQL Server的QUOTED_IDENTIFIER通常为关闭状态,此时双引号会被当作字符串而非标识符解析,所以方括号是更稳妥的方案。
内容的提问来源于stack exchange,提问作者mar355
相关产品推荐
相关产品推荐

