Oracle Spatial 数据脚本

本文详细介绍如何在Oracle数据库中创建包含多边形、圆形的空间表,并为该表建立R树索引,以便进行高效的空间数据检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[url]http://www.3snews.net/html/60/3360-4067.html[/url]

-- 创建geotest表----------------

CREATE TABLE geotest (
geotest_id NUMBER PRIMARY KEY,
name VARCHAR2(32),
shape MDSYS.SDO_GEOMETRY);

-- 增加geotest记录----------------

INSERT INTO geotest VALUES(
1,
't_a',
MDSYS.SDO_GEOMETRY(
2003, -- 2维多边形
NULL, -- 标识坐标系,与集合实体关联,Null则几何实体不与空间参考系相关联。
NULL, -- 使用XYZ属性值定义对象类型
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,3), -- one rectangle (1003 = exterior)
MDSYS.SDO_ORDINATE_ARRAY(1,1, 5,7) -- only 2 points needed to
-- define rectangle (lower left and upper right) with
-- Cartesian-coordinate data
)
);

INSERT INTO geotest VALUES(
2,
't_b',
MDSYS.SDO_GEOMETRY(
2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), -- one polygon (exterior polygon ring)
MDSYS.SDO_ORDINATE_ARRAY(5,1, 8,1, 8,6, 5,7, 5,1)
)
);

INSERT INTO geotest VALUES(
3,
't_c',
MDSYS.SDO_GEOMETRY(
2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1), -- one polygon (exterior polygon ring)
MDSYS.SDO_ORDINATE_ARRAY(3,3, 6,3, 6,5, 4,5, 3,3)
)
);

INSERT INTO geotest VALUES(
4,
't_d',
MDSYS.SDO_GEOMETRY(
2003,
NULL,
NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,4), -- one circle
MDSYS.SDO_ORDINATE_ARRAY(8,7, 10,9, 8,11)
)
);

---创建索引 ----------------

CREATE INDEX test_spatial_idx
ON geotest(shape)
INDEXTYPE IS MDSYS.SPATIAL_INDEX;

-- 如果没有指定任何与四叉数有关的参数的情况下,创建的

-- 空间索引是R树索引.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值