如何编写查询以插入SDO_GEOMETRY类型的列数据Oracle DB?

时间:2018-03-16 11:24:54

标签: oracle geospatial spatial oracle-spatial

我有一项任务是创建sql查询以在oracle列中插入数据 数据类型为SDO_GEOMETRY
我只有纬度和经度值。

任何指针都会有所帮助

2 个答案:

答案 0 :(得分:1)

完整的文档有更多示例,但这是您需要的代码段。

SDO_GEOMETRY(2001,
             4326,
             SDO_POINT_TYPE(37.783333, -122.416667, NULL),
             NULL,
             NULL)

完整文档:https://docs.oracle.com/cd/E17781_01/appdev.112/e18750/xe_locator.htm#XELOC563

答案 1 :(得分:0)

除了按Kris Rice所述将SDO_GEOMETRY列中的Lat&Lng保存之外,您还可以使用Oracle Spatial和Oracle Locator的许多有用功能来获得一些有用的结果。

要使用这些功能,必须采取以下步骤:

  1. 更改表以添加几何(SDO_GEOMETRY)列。
  2. 使用现有的位置相关数据值更新表以填充SDO_GEOMETRY对象。
  3. 更新空间元数据(USER_SDO_GEOM_METADATA)。
  4. 在表上创建空间索引。

here说明了上述步骤的详细信息。

完成上述步骤后,您可以使用Oracle Locator提供的有用的运算符。例如,您可以找到距给定点X米以内的位置。有关更多详细信息,请阅读this Oracle文档。