为Oraclespatial表添加记录和创建空间索引

在手工录入Oraclespatial表时,需要将空间表和字段记录插入到记录表USER_SDO_GEOM_METADATA中,然后创建空间表的空间字段索引。

  1. — 1. 删除索引(若全新创建可不执行):  
  2. DROP INDEX 空间表索引名称;  
  3. — 2. 删除记录(若全新创建可不执行):  
  4. DELETE FROM USER_SDO_GEOM_METADATA WHERE TABLE_NAME=‘空间表名’;  
  5. — 3. 删除同名表(若全新创建可不执行):  
  6. DROP table 空间表名;  
  7. — 4. 创建表  
  8. — CREATE TABLE…  
  9. — 5.添加空间数据表和字段记录  
  10. INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID)   
  11.     VALUES (‘空间表名’‘空间字段名称’, MDSYS.SDO_DIM_ARRAY (  
  12.         MDSYS.SDO_DIM_ELEMENT(‘X’, 95.0, 122.0, 0.0000001),  
  13.         MDSYS.SDO_DIM_ELEMENT(‘Y’, 21.5, 44.0, 0.0000001)), NULL);  
  14.   
  15. — 6.创建空间表字段索引  
  16. create index idx_空间表名 on 空间表名(空间字段名称) indextype is mdsys.spatial_index;  
  17.   
  18. — *********************补充*********************  
  19. — 查询时,将空间字段转换为wkt字符串  
  20. select t.*, to_char(SDO_UTIL.TO_WKTGEOMETRY(t.空间字段名称)) from 空间表名 t;  
  21. — 或者  
  22. select t.*, to_char(sdo_geometry.get_wkt(空间字段名称)) from 空间表名 t;  
  23. — 或者  
  24. select t.*, to_char(t.空间字段名称.GET_WKT()) from 空间表名 t;  
  25.   
  26.   
  27. — 插入时,将wkt字符串转换为Geometry对象  
  28. SDO_UTIL.FROM_WKTGEOMETRY(‘wkt字符串’);  
  29. –或者  
  30. MDSYS.SDO_GEOMETRY(‘wkt字符串’,3857);  
  31.   
  32. –查询空间记录表  
  33. select * from USER_SDO_GEOM_METADATA;  
  34. –查询空间索引表  
  35. select * from USER_SDO_INDEX_METADATA;  
  36. –或者  
  37. select * from USER_SD0_INDEX_INFO;  
  38.   
  39.   
  40.   
-- 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;


--

转载自:https://blog.csdn.net/sinat_28633913/article/details/76269377

You may also like...

退出移动版