oracle 建立空間索引

2021-08-07 19:42:30 字數 1628 閱讀 2797

如果資料是從別人的庫中匯入進來,先前如果建有空間索引,則需要刪除之後,建立自己的空間索引(否則容易報錯),如果完全是自己的資料,或者之前並沒有建立空間索引那就可以直接建立了。

首先進行查詢,判斷資料是否已經建立相應的空間元資料

[sql]view plain

copy

select

* from

user_sdo_geom_metadata t 

where

t.sdo_table_name 

like

『%表名%』;  

如果有跟你的表相關的,請把他刪除。

[sql]view plain

copy

select

* from

user_ind_columns t 

where

t.index_name=

'索引名稱'

;  

然後就可以建立空間索引了,首先建立空間元資料,語句如下。

[sql]view plain

copy

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

);  

建立使用者元資料。

[sql]view plain

copy

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

);  

建立索引

[sql]view plain

copy

create

index

索引名稱 

on表名 (欄位名稱) indextype 

ismdsys.spatial_index;  

如果不能建立成功,一般情況就是之前的庫結果中已經建立過空間索引了,只需要把之前建索引的東西刪掉就行。

Oracle中空間字段建立索引

建立表 create table testspatial id varchar2 20 not null,name varchar2 100 address varchar2 200 telephone varchar2 50 location sdo geometry 插入資料 insert in...

建立空間索引

發布地圖服務的時候,分析的結果是有部分資料來源沒有空間索引。高階警告。空間索引可以加快繪圖速度。索引嘛,不必多言。那怎麼建立空間索引呢?在谷歌上尋尋覓覓,看arcgis的幫助,如墜五雲中。其正確廢話的程度,直逼msdn。好在在末尾處沒有追問你一句 您覺得以上內容對你是否有幫助?有博文介紹了在orac...

oracle 新增空間索引

oracle中為了進行空間運算和空間判斷,需要使用空間索引。新增空間索引分為2步。首先把geometry欄位的空間範圍加到元資料表 insert into user sdo geom metadata values ad merge 這裡是表名,需要修改 geometry 這裡是geometry欄位...