当前位置:  数据库>oracle

Oracle spatial 空间数据SQL查询操作相关实例

    来源: 互联网  发布时间:2017-04-28

    本文导语: Oracle spatial 空间数据SQL查询操作相关实例 --select dlbm,dlmc,trim(zldwdm) as zldwdm_1 from gzdt where nvl(zldwdm,'t')='t' or zldwdm='';update gzdt set ZLDWDM='510113106' where  nvl(zldwdm,'t')='t' or zldwdm='';commit;delete from gzdt where ZLDWDM like '510113106%'commit;//获取空间...

Oracle spatial 空间数据SQL查询操作相关实例

--select dlbm,dlmc,trim(zldwdm) as zldwdm_1 from gzdt where nvl(zldwdm,'t')='t' or zldwdm='';
update gzdt set ZLDWDM='510113106' where  nvl(zldwdm,'t')='t' or zldwdm='';
commit;
delete from gzdt where ZLDWDM like '510113106%'
commit;
//获取空间面的面积
update gzdt set mj=mdsys.sdo_geom.sdo_area(geometry,0.0000000005);
//获取空间线的长度
update xzdw set cd=mdsys.sdo_geom.sdo_length(geometry,0.0000000005);







//删除空间数据 用SQL语句
//sql insert oracle spatial object  耕地
delete from spatial;
insert into spatial(dlbm,geometry)
select dlbm,geometry from v_dltb where dlbm in('011','012','013') ;
commit;




//插入空间数据 用SQL语句
insert into spatial(dlbm,geometry)
select dlbm,geometry from v_dltb where dlbm in('011','012','013') ;
commit;


//创建空间字段索引 oracle spatial table
//======================================
drop index index_spatial_v_gb_gdbhdk_h;
drop index index_spatial_v_jj_xzq_h;
drop index index_spatial_v_tdlygh_ytfq_xz_e;
drop index index_spatial_v_tdlyxz_dltb_h;
drop index index_spatial_v_tdly_nydfddj_k;






create index v_gb_gdbhdk_h_spatial_index      on v_gb_gdbhdk_h(geometry)        indextype mdsys.spatial_index;
create index v_jj_xzq_h_spatial_index         on v_jj_xzq_h(geometry)           indextype mdsys.spatial_index;
create index v_tdlygh_ytfq_xz_e_spatial_index on v_tdlygh_ytfq_xz_e(geometry)   indextype mdsys.spatial_index;
create index v_tdlyxz_dltb_h_spatial_index    on v_tdlyxz_dltb_h(geometry)      indextype mdsys.spatial_index;
create index v_tdly_nydfddj_k_spatial_index   on v_tdly_nydfddj_k(geometry)     indextype mdsys.spatial_index;
//======================================






//创建字段索引
//=======================================
drop   index index_fd_v_gb_gdbhdk_h_xzqdm;
drop   index index_fd_v_jj_xzq_h_xzqdm;
drop   index index_fd_v_tdlygh_ytfq_xz_e_xzqdm;
drop   index index_fd_v_tdlyxz_dltb_h_zldwdm;
drop   index index_fd_v_tdly_nydfddj_k_xzdm;







create index index_fd_v_gb_gdbhdk_h_xzqdm         on v_gb_gdbhdk_h(xzqdm);
create index index_fd_v_jj_xzq_h_xzqdm            on v_jj_xzq_h(xzqdm);
create index index_fd_v_tdlygh_ytfq_xz_e_xzqdm    on v_tdlygh_ytfq_xz_e(xzqdm);
create index index_fd_v_tdlyxz_dltb_h_zldwdm      on v_tdlyxz_dltb_h(zldwdm);
create index index_fd_v_tdly_nydfddj_k_xzdm       on v_tdly_nydfddj_k(xzdm);
//=======================================






//读取空间数据字段sql geometry
select DLBM,dlmc,
       mdsys.sdo_geom.sdo_area(geometry,0.0000000005) as geo_mj,
       sdo_util.getnumelem(geometry) as num_elem,
       sdo_util.getVertices(geometry) as Vertices,
       sdo_util.GetNumRings(geometry) as Num_Rings,
       sdo_util.to_gmlgeometry(geometry) as gmlgeo,
       geometry
from v_dltb









//两空间图层相交运算
//任意相交运算mask=anyinteract
delete from gzdt;
insert into gzdt(dlbm,geometry)
select a.dlbm,
     SDO_GEOM.SDO_INTERSECTION(a.geometry, b.geometry, 0.0001) as geometry
from v_dltb as a
     v_ytfq as b
where sdo_relate(a.geometry,b.geometry,'mask=ANYINTERACT')='TRUE'









//在内部运算mask=inside
delete from gzdt;
insert into gzdt(dlbm,geometry)
select a.dlbm,
     SDO_GEOM.SDO_INTERSECTION(a.geometry, b.geometry, 0.0001) as geometry
from v_dltb as a
     v_ytfq as b
where sdo_relate(a.geometry,b.geometry,'mask=INSIDE')='TRUE'







 


//dltb_jbnt叠加分析
select * from v_dltb
where dlbm in('011','012','013') and dldwdm like '510112106%';
//
select d.dlbm,d.dlmc,
       d.tbmj,d.tbdlmj,d.xzdwmj,d.lxdwmj,d.tkmj,
       mdsys.sdo_geom.sdo_area(d.geometry,0.0000000005) as geo_mj,
       sdo_util.getnumelem(d.geometry) as num_elem,
       sdo_util.getVertices(d.geometry) as Vertices,
       sdo_util.GetNumRings(d.geometry) as Num_Rings,
       sdo_util.to_gmlgeometry(d.geometry) as gmlgeo,
       SDO_GEOM.SDO_INTERSECTION(d.geometry, y.geometry, 0.0001) as geometry
from v_dltb d,
     v_ytfq y
where  d.dldwdm like '510112106%'  and  (d.dlbm in('021') or d.dlbz in('k','K')) and
       y.xzqdm like '510112%' and
       mdsys.sdo_geom.relate(d.geometry,'INSIDE',y.geometry,0.0001)='INSIDE';
//提取v_gbjj图层有效几何图形数据
select * from v_gbjj
where sdo_geom.validate_geometry_with_context(GEOMETRY,0.0001)='TRUE'
//提取v_gbjj图层无效几何图形数据
select * from v_gbjj
where sdo_geom.validate_geometry_with_context(GEOMETRY,0.0001)'TRUE'
//==the==end==      
























    
 
 

您可能感兴趣的文章:

  • Linux上建立第二个ORACLE实例分析
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • oracle的存储过程实例讲解
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • oracle分页存储过程 oracle存储过程实例
  • C#连接Oracle数据库的实例方法
  • Oracle数据库实例两则
  • Oracle 删除归档日志实例
  • Oracle 10g for solaris准备工作和实例的删除
  • Oracle 11G 无法连接到数据库实例故障排除
  • Linux下设置Oracle 10g 服务以及实例自动启动
  • oracle group by语句实例测试
  • Oracle数据库异构服务原理及实例说明
  • Linux下删除Oracle实例
  • 与Oracle RAC相关的连接配置写法实例
  • Oracle监听器Server端与Client端配置实例
  • Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
  • oracle删除已存在的表的实例
  • Aix 5.3下自动备份Oracle多个实例
  • Oracle数据库安全性管理基本措施实例解析
  • SQL语句创建Oracle Spatial的图层方法简介
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ORACLE日期相关操作
  • Linux下如何用C语言操作Oracle数据库相关的图书推荐
  • Oracle终于涉入支持Linux操作系统了
  • Linux平台下Oracle的操作
  • linux c 怎样利用pro*c/c++操作 win2000 下 oracle 谢谢
  • Window客户端通过ADO是否能够连接和操作Unix平台下的Oracle数据库?
  • Oracle将字符编码从GBK转到UTF8,如何操作比较稳妥?
  • 如何设定linux red hat 9的oracle9,让window的电脑可以操作数据库
  • linux oracle数据库删除操作指南
  • Linux环境中Oracle数据导入与导出备份操作
  • Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁
  • oracle的plsql里有没有位操作的功能
  • fedora core5 (FC5) 下面不能装 Oracle 10g 么? (检查操作系统就通不过啊,晕)
  • 怎样在c语言的代码里内嵌的操作oracle数据库,各位大虾谢谢了
  • 一个关于JAVA操作oracle数据库时UPDATE权限的问题
  • Oracle中操作分页
  • Oracle 数据库操作技巧集
  • secureCRT远程连接服务器操作oracle数据库出现的问题
  • 请教各位:JAVA操作ORACLE的问题 急!!!
  • 学习登录oracle数据库时常用的操作命令
  • Linux平台上OCI操作ORACLE数据库时乱码问题的解决
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,