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

从SQL Server导出空间数据至ESRI Shapefile时遇OGR2OGR报错

解决ogr2ogr导出SQL空间数据到ESRI Shapefile的错误

你遇到的问题主要源于对Shapefile存储逻辑的误解,加上命令里的路径格式错误,我来一步步帮你搞定:

错误原因拆解

ERROR 1: Failed to create directory C:\Users\sqlexport.shp for shapefile datastore.
ERROR 1: ESRI Shapefile driver failed to create C:\Users\sqlexport.shp

ESRI Shapefile不是单个独立文件,而是由.shp、.shx、.dbf等多个关联文件组成的数据集,ogr2ogr需要一个文件夹来存放这些文件,而不是直接指定.shp文件名。另外你命令里的路径前后有多余空格,也会导致解析失败。

修正后的命令

下面是调整后的正确命令,我标注了关键修改点:

ogr2ogr -f "ESRI Shapefile" "C:\Users\sqlexport" "MSSQL:server=PORT_7FMW8H2;database=testdbspatial;trusted_connection=yes" -sql "select * from DRShape" -overwrite

关键修改说明

  • 目标路径调整:把原来的" C:\Users\sqlexport.shp "改成"C:\Users\sqlexport"。这里指定的是一个文件夹名,ogr2ogr会自动创建这个文件夹(如果不存在),并在里面生成完整的Shapefile相关文件。
  • 移除多余空格:删除了路径字符串前后、MSSQL连接字符串末尾的多余空格,这些空格会让ogr2ogr错误解析路径。

可选方案

如果你不想新建单独的文件夹,也可以直接指定到C:\Users目录,这样生成的Shapefile会以你的查询表名DRShape命名,命令如下:

ogr2ogr -f "ESRI Shapefile" "C:\Users" "MSSQL:server=PORT_7FMW8H2;database=testdbspatial;trusted_connection=yes" -sql "select * from DRShape" -overwrite

执行后会在C:\Users下生成DRShape.shp、DRShape.shx、DRShape.dbf等文件。

额外注意事项

如果执行命令时仍然提示权限错误,右键点击命令提示符/终端,选择以管理员身份运行后再执行,因为C:\Users目录通常需要较高权限才能写入文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:25:47