将几何转换为地理

时间:2018-11-30 09:39:06

标签: sql-server sql-server-2012 sql-server-2016 spatial-data

我想在SQL Server中将几何转换为地理;我关注了这篇文章:

https://blogs.msdn.microsoft.com/edkatibah/2008/08/19/working-with-invalid-data-and-the-sql-server-2008-geography-data-type-part-1b/

这是我的查询:

INSERT INTO gCOMMUNE         
SELECT 
      [dbo].[commune].[ogr_fid], 
      GEOGRAPHY::STGeomFromWKB(commune.ogr_geometry.STAsBinary(),4326)
FROM [IMMATS].[dbo].[commune]

但是当我运行转换命令时,我得到了这个错误:

  

消息213,级别16,状态1,第26行所提供的值的名称或列号与表的定义不匹配。

1 个答案:

答案 0 :(得分:0)

看起来100 表的列数与用于选择要插入其中的数据的查询的列数不同。您必须在INSERT INTO语句中指定列名称。假设有名为for /F "delims=" %%I in ('wmic Path Win32_Battery get EstimatedChargeRemaining /VALUE') do ( for /F "delims=" %%J in ("%%I") do ( rem // Store whole line in a variable: set "VALUE=%%K" rem // Toggle delayed expansion to not lose exclamation marks: setlocal EnableDelayedExpansion rem // Split off value name: set "VALUE=!VALUE:*EstimatedChargeRemaining=!" rem // Split off leading `=`: echo(!VALUE:~1! endlocal ) ) gCOMMUNE的列(根据您的澄清,事实证明它们分别是[ogr_fid]和[ogr_geog]),这就是您的语句的样子:

id