oracle spatial 增查SQL示例(三 ) 半圆弧和R-tree索引建立

本文介绍了如何在Oracle数据库中创建一个包含弧线(半圆)和点的地理表,以及如何建立R-tree索引进行空间查询。通过插入数据和执行查询来验证点是否位于弧线上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目标:
计算一个点是否在弧上

  1. 建表
    create table itestg1(id int,
    m1 MDSYS.SDO_GEOMETRY,–存放弧线(半圆)circularstring
    m2 MDSYS.SDO_GEOMETRY–存放一个点
    ) ;

  2. 建立索引
    1) 在user_sdo_geom_metadata表插入元数据,没有元数据是没法建立索引的
    insert into user_sdo_geom_metadata(table_name,COLUMN_NAME, DIMINFO, SRID)
    values(
    ‘ITESTG1’,
    ‘m2’,
    MDSYS.SDO_DIM_ARRAY(
    MDSYS.SDO_DIM_ELEMENT(‘X’,-180,180,0.005),
    MDSYS.SDO_DIM_ELEMENT(‘Y’,-90,90,0.005)
    ),
    null
    );
    insert into user_sdo_geom_metadata(table_name,COLUMN_NAME, DIMINFO, SRID)
    values(
    ‘ITESTG1’,
    ‘m1’,
    MDSYS.SDO_DIM_ARRAY(
    MDSYS.SDO_DIM_ELEMENT(‘X’,-180,180,0.005),
    MDSYS.SDO_DIM_ELEMENT(‘Y’,-90,90,0.005)
    ),
    null
    )
    建索引
    create index index_m1 on itestg1(m1) indextype is mdsys.spatial_index;
    create index index_m2 on itestg1(m2) indextype is mdsys.spatial_index;

  3. 插入数据
    INSERT INTO itestg1 VALUES(
    1,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值