【发布时间】:2012-05-22 15:51:22
【问题描述】:
如何将它从 MS SQL SERVER 转换为 MySQL?
/****** Object: StoredProcedure [dbo].[geolocation_refresh_geography] Script Date: 05/08/2012 22:02:26 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create procedure [dbo].[geolocation_refresh_geography]
as
update locations
SET geolocation = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
where geolocation is null
GO
我的代码在第 4 行导致错误,不知道为什么?
create procedure geolocation_refresh_geography()
BEGIN
update locations
SET geolocation = geography::STPointFromText('POINT(' + CAST(Longitude AS VARCHAR(20)) + ' ' + CAST(Latitude AS VARCHAR(20)) + ')', 4326)
where geolocation is null
END
【问题讨论】:
-
我假设第二块是你的 MySQL 代码,如果是这样,它失败的原因是因为 mysql 没有地理位。 STPointFromText 是您必须手动执行的操作。很可能,这将不得不在外部进行编码。
-
为什么必须手动或外部完成? MySQL 支持几乎与 SQL Server 完全相同的 OGC 标准——只是语法略有不同。 dev.mysql.com/doc/refman/5.0/en/gis-introduction.html
标签: mysql sql-server