在手工录入Oraclespatial表时,需要将空间表和字段记录插入到记录表USER_SDO_GEOM_MetaDATA中,然后创建空间表的空间字段索引。
-- 1. 删除索引(若全新创建可不执行): DROP INDEX 空间表索引名称; -- 2. 删除记录(若全新创建可不执行): DELETE FROM USER_SDO_GEOM_MetaDATA WHERE TABLE_NAME='空间表名'; -- 3. 删除同名表(若全新创建可不执行): DROP table 空间表名; -- 4. 创建表 -- CREATE TABLE... -- 5.添加空间数据表和字段记录 INSERT INTO USER_SDO_GEOM_MetaDATA (TABLE_NAME,COLUMN_NAME,DIMINFO,SRID) VALUES ('空间表名','空间字段名称',MDSYS.SDO_DIM_ARRAY ( MDSYS.SDO_DIM_ELEMENT('X',95.0,122.0,0.0000001),MDSYS.SDO_DIM_ELEMENT('Y',21.5,44.0,0.0000001)),NULL); -- 6.创建空间表字段索引 create index idx_空间表名 on 空间表名(空间字段名称) indextype is mdsys.spatial_index; -- *********************补充********************* -- 查询时,将空间字段转换为wkt字符串 select t.*,to_char(SDO_UTIL.TO_WKTGEOMETRY(t.空间字段名称)) from 空间表名 t; -- 或者 select t.*,to_char(sdo_geometry.get_wkt(空间字段名称)) from 空间表名 t; -- 或者 select t.*,to_char(t.空间字段名称.GET_WKT()) from 空间表名 t; -- 插入时,将wkt字符串转换为Geometry对象 SDO_UTIL.FROM_WKTGEOMETRY('wkt字符串'); --或者 MDSYS.SDO_GEOMETRY('wkt字符串',3857); --查询空间记录表 select * from USER_SDO_GEOM_MetaDATA; --查询空间索引表 select * from USER_SDO_INDEX_MetaDATA; --或者 select * from USER_SD0_INDEX_INFO; --