Oracle Spatial is an option of the Oracle database that allows users to store and retrieve geographical or location information. Some examples: population by county, amount of sales by state, amount of employees per site, etc.
Oracle Spatial was previously known as SDO and before that as MultiDimension. A brief history:
- Spatial data capabilities as modification shipped by scientists working with the Canadian Hydrographic Service (CHS) to Oracle 4.
- Spatial Data Option (SDO) shipped in Oracle 7.3.3.
- Spatial introduced it's object type in Oracle 8.1.5.
- Spatial added Java Classes, Projections, Linear Referencing and R-Tree Indexing in Oracle 8.1.7.
- Spatial added Whole Earth Geometry Model, Function-based indexes, Object replication, Partitioning in Oracle 9i.
- Spatial added Geocoder, GeoRaster, Network Data Model, Topology, Spatial Analytic Functions and Routing engine in Oracle 10g.
- Spatial added 3D Support and Web Services in Oracle 11g.
- Oracle Application Server MapViewer first shipped in AS 9.0.2
- MapViewer current release is FMW Version 10.1.3.3 Patch 5
Oracle Spatial is only available with Oracle Enterprise Edition as a separately licensed option.
 Functionality provided
Oracle Spatial provides all the functionality that Locator provided. In addition, it also supports:
- Linear referenced features, LRS, e.g. roads which store the distance along the road
- Network models, NDM, such as road networks, allowing rapid calculation of shortest paths
- Topological relationships can be stored, such as this property boundary touches this neighbouring boundary. Generally used by data producers wishing to edit high integrity spatial data
- Coordinate system support based on the European Petroleum Survey Group (EPSG) data model
- Explicit coordinate transformations
- WorkSpace manager for versioning, long transaction support
- GeoRaster Storage of images such as satellite and aerial photography
- A geocoder that translates address data to coordinate, a routing engine for street directions
- Some more complex spatial functions, mainly for analysis and data aggregation
- 3D data model for storing and managing 3D vector data, Triangualted Irregular Networks, TINs and Point Cloud data
- Web Services , WFS , CSW and OpenLS
- Integration with Oracle Application Server 11g MapViewer map visualization development tool
Create a spatial table to store GPS (Global Positioning System) coordinates:
CREATE TABLE gps (longlat MDSYS.SDO_GEOMETRY);
Register the spatial table:
INSERT INTO user_sdo_geom_metadata VALUES('GPS', 'LONGLAT', mdsys.sdo_dim_array( mdsys.sdo_dim_element('Long', -15, 25, 0.005), mdsys.sdo_dim_element('Lat', -35, -15, 0.005)), 8307);
Create a spatial index:
CREATE INDEX gps_ind ON gps(longlat) INDEXTYPE IS mdsys.spatial_index;
Load a record:
INSERT INTO gps VALUES ( SDO_GEOMETRY(2003, 8307, NULL, SDO_ELEM_INFO_ARRAY(1, 1003, 1), SDO_ORDINATE_ARRAY( 3428099223, -3.342E+09, 3427750794, -3.342E+09, 3427655045, -3.342E+09, 3427548248, -3.342E+09, 3427542723, -3.342E+09)));
 Also see
- Spatial FAQ. frequently asked questions
- Locator, a scaled down "free" version of Oracle Spatial.
- Mapviewer, Oracle's map rendering solution.