5

我正在构建一项服务,该服务从将其几何存储在 Oracle 10g 中的系统中选择多个几何,然后将这些几何的副本保存到 SQL Server 数据库中以供另一个系统使用。

首先查看 SDO_UTIL.TO_WKTGEOMETRY()。但是,几何图形存储为 3d 几何图形(即使 z 层始终为 0,因此它不会工作,因为 WKT 仅在 2d 中有效)。

第二个选项是 SDO_UTIL.TO_GMLGEOMETRY(),但是这会在 V2 中返回 GML,并且 SQL Server 希望它们在 GML V3.1.1 中(从我能读到的)(并且还没有找到一种简单的方法来转换这些)。

有没有人有其他选择的想法,也许是一些可以用于此的第三方库?

4

2 回答 2

2

一种可能是使用 TOWKB?Oracle 空间中的函数将 SDO_Geometry 转换为 WKB。然后使用类似下面的东西与从 SQL Server 到 Oracle 的链接服务器。

WITH A AS (SELECT MI_PRINX, STREET,geometry::STGeomFromWKB(WKB,4283).MakeValid() as geom from SISTDB..GIPS.WKB_ROADS_TEST_V)insert into sde.TRA_LAN_QueenslandRoadsSELECT MI_PRINX as ID, STREET,geography::STGeomFromWKB(geom.STAsBinary(),4283) as geog from A;
于 2013-10-31T04:37:07.803 回答
1

我发现了一个讨论类似问题的旧线程(oracle 论坛链接),由于没有实际使用 sdo_geoms z 层,因此 SDO_LRS.CONVERT_TO_STD_GEOM() 将其变为 2D。

所以最后我得到了一个 WKT:SDO_UTIL.TO_WKTGEOMETRY(SDO_LRS.CONVERT_TO_STD_GEOM(GEOMETRY_C)) AS wkt,

于 2013-11-21T18:28:33.760 回答