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

在手工录入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;


--

相关文章

数据库版本:11.2.0.4 RAC(1)问题现象从EM里面可以看到,在23号早上8:45~8:55时,数据库等待会话暴增...
(一)问题背景最近在对一个大约200万行数据的表查看执行计划时,发现存在异常,理论上应该返回100多万...
(一)删除备份--DELETE命令用于删除RMAN备份记录及相应的物理文件。当使用RMAN执行备份操作时,会在RM...
(1)DRA介绍 数据恢复顾问(Data Recovery Advise)是一个诊断和修复数据库的工具,DRA能够修复数据文...
RMAN(Recovery Manager)是Oracle恢复管理器的简称,是集数据库备份(backup)、修复(restore)和恢复...
(1)备份对象 可以使用RMAN进行的备份对象如下: --整个数据库:备份所有的数据文件和控制文件; --数...