oracle 创建空间索引

  1. 如果数据是从别人的库中导入进来,先前如果建有空间索引,则需要删除之后,建立自己的空间索引(否则容易报错),如果完全是自己的数据,或者之前并没有建立空间索引那就可以直接建立了。
    1. 首先进行查询,判断数据是否已经建立相应的空间元数据
      [sql]  view plain  copy
      1. select * from user_sdo_geom_metadata t where t.sdo_table_name like ‘%表名%’;  
      如果有跟你的表相关的,请把他删除。
      [sql]  view plain  copy
      1. select * from user_ind_columns t where t.index_name='索引名称';  
    2. 然后就可以建立空间索引了,首先建立空间元数据,语句如下。
      [sql]  view plain  copy
      1. INSERT INTO mdsys.sdo_geom_metadata_table(sdo_owner,sdo_table_name,sdo_column_name,sdo_diminfo,sdo_srid)  
      2.   VALUES ('表空间','表名''GEOM(空间字段名称)',  
      3.     MDSYS.SDO_DIM_ARRAY  
      4.       (MDSYS.SDO_DIM_ELEMENT('X', -180.0, 180.0, 0.00005),  
      5.        MDSYS.SDO_DIM_ELEMENT('Y', -90.0,90.0, 0.00005)  
      6.      ),  
      7. NULL);  
    3. 建立用户元数据。
      [sql]  view plain  copy
      1. INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)  
      2.  VALUES ('表名''REAL_GEOM(空间字段名称)',  
      3.     MDSYS.SDO_DIM_ARRAY  
      4.       (MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.00000000050),  
      5.        MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.00000000050)),  
      6.      NULL);  


    4. 创建索引
      [sql]  view plain  copy
      1. CREATE INDEX 索引名称 ON 表名 (字段名称) INDEXTYPE IS MDSYS.SPATIAL_INDEX;  

  2. 如果不能创建成功,一般情况就是之前的库结果中已经创建过空间索引了,只需要把之前建索引的东西删掉就行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值