如果資料是從別人的庫中匯入進來,先前如果建有空間索引,則需要刪除之後,建立自己的空間索引(否則容易報錯),如果完全是自己的資料,或者之前並沒有建立空間索引那就可以直接建立了。
首先進行查詢,判斷資料是否已經建立相應的空間元資料
[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欄位...