You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用R语言sf包从.gdb数据库读取带连字符的字段?

解决SF包读取GDB时带连字符字段的SQL查询错误

问题核心是SQL解析逻辑:当字段名包含连字符-时,SQL会把AUM-Code误认为是AUM - Code(减法运算),因此报错找不到AUM字段。

解决办法是给带特殊字符的字段名加上双引号,明确告知SQL这是一个完整的字段名,修改后的代码如下:

library(sf)
library(tidyverse)

# 给带连字符的字段名添加双引号
query <- paste("SELECT jahr, \"AUM-Code\" FROM", "AUM_2018")

res <- st_read(dsn = "AUM_2018.gdb",
               query = query)

head(res)

也可以用单引号包裹整个SQL语句,避免转义双引号,写法更简洁:

query <- 'SELECT jahr, "AUM-Code" FROM AUM_2018'

注意:GDAL底层使用的OGR SQL方言中,双引号是标识含特殊字符字段名的标准方式,这种方法同样适用于字段名包含空格、特殊符号的场景。

内容的提问来源于stack exchange,提问作者Hugo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:54:56