ogr2ogr 不创建表

Posted

技术标签:

【中文标题】ogr2ogr 不创建表【英文标题】:ogr2ogr does not create tables 【发布时间】:2018-09-10 14:10:58 【问题描述】:

我尝试按照本指南 https://alastaira.wordpress.com/ogr2ogr-patterns-for-sql-server/ 使用 ogr2ogr 命令将一些形状导入 SQL

我正在使用这个命令:

ogr2ogr -overwrite -f MSSQLSpatial [连接字符串] [shapefile] -nln "shape3" -nlt 几何

并收到此错误:

错误 1:新功能的 INSERT 命令失败。 [Microsoft][ODBC SQL Server Driver][SQL Server]无效的对象名称“dbo.shape3”。 错误 1:无法从层 tl_2010_06_zcta510 写入特征 0。 错误1:tl_2010_06_zcta510层翻译失败后提前终止翻译(使用-skipfailures跳过错误)

命令没有创建表,插入失败。

我尝试先创建表并使用命令插入:

ogr2ogr -f "MSSQLSpatial" [连接字符串] [shapefile] -a_srs “ESPG:4269”-lco“GEOM_TYPE=地理”-lco“GEOM_NAME=area”-nln “形状3”

除了不加载 GEOGRAPHY 列(区域)之外,它工作正常,它仍然为 NULL。

我使用的是指南中提供的文件,而连接字符串中的用户是管理员,所以这不是权限问题。

提前谢谢大家。

【问题讨论】:

【参考方案1】:

解决了在命令中添加 -lco UPLOAD_GEOM_FORMAT=wkt 的问题,它与一些几何格式有关。

UPLOAD_GEOM_FORMAT:(来自 GDAL 2.0.0)指定几何格式(wkb 或 wkt) 创建或修改功能时。默认值为 wkb。 https://www.gdal.org/drv_mssqlspatial.html

【讨论】:

以上是关于ogr2ogr 不创建表的主要内容,如果未能解决你的问题,请参考以下文章

plsql怎么创建用户而且分配表空间?如果不制定表空间会怎样?以及授权的整个创建用户完整流程

不存在则创建表,创建后输入一行

插入表,如果表不存在,则创建表然后插入

如果使用命令行或 sql 在大查询中不存在表,如何创建表

查询 MySQL Geometry 数据类型列中的数据

oracle 怎么授权用户 只能在指定的表空间中 创建表