以@MickyT的答案为基础,由于您将要拥有一个表,其值已经位于WKB(或我们所谓的表)中,因此您希望编写将所有记录转换为几何的sql,而不必声明变量等。
因此,如果您从一个简单的临时表开始,它将复制WKB到一条记录中,它将看起来像这样:
select 0x3D0B0000010C80BAE380AE064841005149CD6EFD3941 as wkb
现在,如果您将其视为临时表并包装一些SQL,则其中有一列包含WKB,可以按照上述建议将其转换为varbinary:
select
cast(temp.wkb as varbinary(max)) as geombinary
from
(
select 0x3D0B0000010C80BAE380AE064841005149CD6EFD3941 as wkb
) as temp
其中temp.wkb可以是较大表中的列,其中包含来自CSV的WKB值
最后,使用MickyT描述的方法并将varbinary转换为几何:
select
cast(geomconvert.geombinary as geometry) as geom
from (
select
cast(temp.wkb as varbinary(max)) as geombinary
from
(
select 0x3D0B0000010C80BAE380AE064841005149CD6EFD3941 as wkb
) as temp
) as geomconvert
返回几何和空间结果:
编辑在哪里声明SRID?正如MickyT回答的那样,它在二进制文件中,您可以在该文件中再包装1个sql查询以进行测试:
select top 1 getsrid.geom.STSrid from (
select
cast(geomconvert.geombinary as geometry) as geom
from (
select
cast(temp.wkb as varbinary(max)) as geombinary
from
(
select 0x3D0B0000010C80BAE380AE064841005149CD6EFD3941 as wkb
) as temp
) as geomconvert
) as getsrid
在我的示例中,得出的结果是正确的,即2877(科罗拉多州状态平面):