2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > oracle 创建空间索引

oracle 创建空间索引

时间:2024-07-04 13:29:04

相关推荐

oracle  创建空间索引

经过一段时间的学习,现在将我关于空间索引的建立经验分享如下。如果数据是从别人的库中导入进来,先前如果建有空间索引,则需要删除之后,建立自己的空间索引(否则容易报错),如果完全是自己的数据,或者之前并没有建立空间索引那就可以直接建立了。

首先进行查询,判断数据是否已经建立相应的空间元数据

select * from user_sdo_geom_metadata t where t.sdo_table_name like ‘%表名%’;

如果有跟你的表相关的,请把他删除。

select * from user_ind_columns t where t.index_name='索引名称';

然后就可以建立空间索引了,首先建立空间元数据,语句如下。

INSERT INTO mdsys.sdo_geom_metadata_table(sdo_owner,sdo_table_name,sdo_column_name,sdo_diminfo,sdo_srid)VALUES ('表空间','表名', 'GEOM(空间字段名称)',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X', -180.0, 180.0, 0.00005),MDSYS.SDO_DIM_ELEMENT('Y', -90.0,90.0, 0.00005)),NULL);

建立用户元数据。

INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)VALUES ('表名', 'REAL_GEOM(空间字段名称)',MDSYS.SDO_DIM_ARRAY(MDSYS.SDO_DIM_ELEMENT('X', -180, 180, 0.00000000050),MDSYS.SDO_DIM_ELEMENT('Y', -90, 90, 0.00000000050)),NULL);

创建索引

CREATE INDEX 索引名称 ON 表名 (字段名称) INDEXTYPE IS MDSYS.SPATIAL_INDEX;

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。