设为首页 收藏本站
查看: 912|回复: 0

[经验分享] oracle+st_geometry

[复制链接]

尚未签到

发表于 2016-11-22 09:40:53 | 显示全部楼层 |阅读模式
  最近因为性能的原因开始关注通过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)。有关各个函数的说明。






    •   执行空间运算的函数

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



    • 返回几何属性的函数

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

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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303841-1-1.html 上篇帖子: JDBC获取数据库表字段信息 下篇帖子: 【原创】hadoop集群监控工具ambari安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表