最近因为性能的原因开始关注通过oracle和st_geometry直接操作数据库来解决实际业务问题。主要还是用到了“使用 SQL 处理 ST_Geometry”。对此,ESRI给出的帮助文档中的解释如下:

可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL)、数据类型和表格式来处理地理数据库中存储的信息。SQL 是一种数据库语言,支持数据定义和数据操纵命令。通过 SQL 访问地理数据库中的信息允许外部应用程序处理地理数据库管理的表格数据。这些外部应用程序可以是在 ArcObjects 以外的环境中开发的非空间数据库应用程序或自定义空间应用程序。可以针对任意支持的地理数据库的 DBMS 类型以及针对基于文件的数据源执行 SELECT 语句。

警告:

请注意,通过 SQL 访问地理数据库会忽略地理数据库功能,如版本化、拓扑、网络、地形、关联要素的注记、其他类或工作空间扩展模块。可使用触发器和存储过程等 DBMS 功能来维护某个地理数据库功能所需的表之间的关系。但是,如果对数据库执行 SQL 命令而不考虑此附加功能(如执行 INSERT 语句以向业务表添加记录或者向现有要素类添加列),则会避开地理数据库功能并可能对地理数据库中数据之间的关系造成损坏。

通常,使用 SQL 修改地理数据库中的信息时将应用以下原则:

  • 数据已版本化后不要使用 SQL 来更新记录,除非将 SQL 与多版本化视图结合使用。
  • 使用 SQL 更新非版本化数据时,不要使用地理数据库行为(例如关系类、关联要素的注记,或者拓扑)修改可影响数据库中其他对象的任意属性。
  • 执行完 SQL 语句后,执行 COMMIT 或 ROLLBACK 语句以确保更改是已提交到数据库还是未完成。

之前的原则适用于任何属性、空间或非空间。本帮助手册重点在于使用 SQL 进行空间选择、更改数据,以及更改以 ST_Geometry 和 ST_Raster 数据存储类型存储的数据的属性。

ST_Geometry 存储类型:

ST_Geometry SQL 数据类型用于存储在 DB2、Informix、Oracle 和 PostgreSQL 的地理数据库中。此数据类型可在地理数据库中使用,另外还可通过 SQL 访问第三方应用程序的简单要素类几何。

ST_Geometry 执行空间的 OGC 和 ISO SQL 多媒体规范。OGC 参考资料为“地理信息的 OpenGIS 执行规范 - 简单要素访问 - 第 2 部分:SQL 选项,版本 1.1.0。ISO 参考资料为“ISO/IEC 13249-3 SQL 多媒体和应用程序包 - 第 3 部分:空间”(ISO/IEC 13249-3 SQL multimedia and application packages—Part 3: Spatial)。

有关 SQL 与 DB2 或 Informix 中的 ST_Geomery 类型结合使用的信息,请参阅 IBM DB2 和 Informix 文档。有关 SQL 与 Oracle 和 PostgreSQL 中的 ST_Geometry 类型结合使用的信息,请参阅后续章节。

提示:

本帮助的“空间类型与 SQL 结合使用”一节包含 DB2 和 Informix 的一些示例;不过有关 ST_Geometry 与这些数据库结合使用的完整信息,请阅读 IBM 文档。

利用SQL函数与ORACLE 可以进行一下的一些常用的操作:

  • 测试空间关系的函数
    • 这些函数将几何作为输入,并确定几何之间是否存在特定关系。如果满足空间关系的条件,则这些函数会返回 1 或 t(表示 TRUE)。如果不满足条件(不存在关系),则这些函数将返回 0 或 f(表示 FALSE)。有关各个函数的说明。
  • 执行空间运算的函数

这些函数利用空间数据并对其执行分析,然后返回新的空间数据。有关这些函数的说明。

  • 返回几何属性的函数

比如他可以进行如我所写的下面的处理一样进行数据的相交判断等等。

 

当然这个工程中会涉及到一些ORACLE的语句的编写等等,不过这也是巩固和提高自身Oracle能力的一个好机会。因为ORACLE支持VSQL的能力,这使得我们在编写符合我们自身业务逻辑的处理过程的时候更加的方便和快捷。因为是是直接通过底层操作数据,省去了中间初始化的很多过程,所以通常它的处理效率要高于我们常用的gp和soe扩展。

成功不是得到多少东西,而是把身上多余的东西的扔掉多少。

oracle+st_geometry的更多相关文章

  1. ArcGis中地理数据库(sde)中概念及常见函数

    以下概念及函数均在在Oracle中配置地理数据库(sde库)中使用: 一.空间类型 1.概念:存储几何数据的数据类型.所有空间信息均存储在空间列中:不存在其他的要素表.将空间信息包含在一个字段中使得在 ...

  2. ArcSDE10.1配置Oracle 监听器来使用SQL操作ST_Geometry(个人改动版)

    发了两天的时间来解决配置Oracle 监听器来使用SQL操作ST_Geometry的配置,网上搜索一大片,结果真正找到的只有方法可用,下面把这个方法我个人在总结下. ArcSDE10.1配置Oracl ...

  3. 怎么配置 Oracle 侦听器来使用SQL操作ST_Geometry

    关于这个内容,其实从ArcSDE9.2推出ST_Geometry就让用户感到很有吸引力,而且特别是在ArcSDE9.3之后,用户使用SQL操作ST_geometry越来越多,但是在配置Oracle监听 ...

  4. 配置 Oracle 11g侦听器来使用SQL操作ST_Geometry(DLL路径问题)

    注:http://resources.arcgis.com/zh-cn/help/main/10.2/index.html#/na/00qn0000001p000000/ (ArcGIS 帮助库) 1 ...

  5. ArcSDE10.2.2使用SQL操作ST_Geometry时报ORA-28579

    给esri中国的客服打电话被告知,是一直存在这个bug,arcgis10.2对应的oracle数据库版本要用11.2.0.3及以上的: 1.数据库升级可以用打补丁的当方式. 2.直接重装,我这里是直接 ...

  6. Oracle function real_st_astext,解决ArcSDE中st_astext函数返回字符串结构异常问题

    项目过程中发现在Oracle中调用ArcSDE的st_astext函数返回ST_Geometry类型字段的WKT文本有时空间类型前缀没有返回,例如一个点的经度为113.4,纬度为30.6,调用st_a ...

  7. Oracle Spatial中SDO_Geometry详细说明[转]

    在ArcGIS中通过SDE存储空间数据到Oracle中有多种存储方式,分别有:二进制Long Raw .ESRI的ST_Geometry以及基于Oracle Spatial的SDO_Geometry等 ...

  8. Oracle空间查询 ORA-28595

    可使用数据库管理系统 (DBMS) 的结构化查询语言 (SQL).数据类型和表格式来处理地理数据库或安装了 ST_Geometry 类型的数据库中所存储的信息. 例如,在ArcMap中我们使用&quo ...

  9. 3 Oracle 32位客户端安装及arcgis连接

    关于Oracle服务器端安装及配置的过程详见第2篇文章,链接如下:http://www.cnblogs.com/gistrd/p/8494292.html,本篇介绍客户端安装配置及连接arcgis过程 ...

随机推荐

  1. Java 8 新特性-菜鸟教程 (7) -Java 8 Nashorn JavaScript

    Java 8 Nashorn JavaScript Nashorn 一个 javascript 引擎. 从JDK 1.8开始,Nashorn取代Rhino(JDK 1.6, JDK1.7)成为Java ...

  2. 将文件内容隐藏在bmp位图中

    首先要实现这个功能,你必须知道bmp位图文件的格式,这里我就不多说了,请看:http://www.cnblogs.com/xiehy/archive/2011/06/07/2074405.html 接 ...

  3. 实验吧 貌似有点难 伪造ip

    解题链接: http://ctf5.shiyanbar.com/phpaudit/ 解答: 点击View the source code —>代码显示IP为1.1.1.1即可得到KEY—> ...

  4. jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配

    指定元素中包含 id 属性的, 如: $("span[id]") 代码如下: <span id="span1" name="S1"&g ...

  5. jQuery中的事件绑定的几种方式

    jQuery目前有on(),bind(),delegate(),live()四种绑定方式,但是随着版本的不断更新,有的方式也相应的被淘汰掉 [band()方式绑定] 3.0版本之前的绑定方式比较常用的 ...

  6. 一文看懂https如何保证数据传输的安全性的【转载、收藏】

    一文看懂https如何保证数据传输的安全性的   一文看懂https如何保证数据传输的安全性的 大家都知道,在客户端与服务器数据传输的过程中,http协议的传输是不安全的,也就是一般情况下http是明 ...

  7. IDEA从SVN中导入多模块项目

    idea多模块项目的导入 在IntelliJ IDEA中间新建一个空项目,名字可以是svn要检索的的项目名称,原则是开心就好: 现在,我们将我们在svn中的多模块的项目down下来 选中顶部的导航中的 ...

  8. 漫画 | Spring AOP的底层原理是什么?

    1.Spring中配置的bean是在什么时候实例化的? 2.描述一下Spring中的IOC.AOP和DI IOC和AOP是Spring的两大核心思想 3.谈谈IOC.AOP和DI在项目开发中的应用场景 ...

  9. docker构建自定义镜像

    docker构建自定义镜像 要构建一个镜像,第一步准备所需要的文件,第二步编写Dockerfile文件,比如我现在构建一个java web镜像 第一步:准备java web工程的war包文件(这里假设 ...

  10. C++桥接模式【转】

    https://www.cnblogs.com/jiese/p/3164940.html 将抽象部份与它的实现部份分离,使它们都可以独立地变化. 桥接模式号称设计模式中最难理解的模式之一,关键就是这个 ...