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

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==

转载自:https://blog.csdn.net/hsg77/article/details/7669037

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值