Import ORACLE SDO_GEOMETRY to SQL Server Geometry
本文关键字:SQL Server Geometry to GEOMETRY ORACLE SDO Import | 更新日期: 2023-09-27 18:11:42
我正在构建一个服务,它从存储在Oracle 10g中的系统中选择一些几何形状,然后将这些几何形状的副本保存到SQL Server数据库中供另一个系统使用。
首先查看SDO_UTIL.TO_WKTGEOMETRY()。然而,几何图形被存储为3d几何图形(即使z层始终为0,所以它将不能工作,因为WKT只在2d中工作)。
选项2然后SDO_UTIL.TO_GMLGEOMETRY(),这然而返回GML在V2,和SQL Server希望他们在GML V3.1.1(从我能读到的)(并没有找到一个简单的方法来转换这些)。
有没有人有其他的选择,也许一些第三方库可以用于此?
一种可能性是使用TOWKB?函数将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;
我发现一个旧的线程(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,