The Oracle Spatial Features

This section describes the features of the ilvdbmaps library that allow you to handle Oracle SDO Relational and Object models.

Oracle SDO, or Oracle Spatial, is the spatial extension of Oracle in version 7.3. This extension has been renamed to Spatial Cartridge in version 8.0 and has been renamed again to Oracle Spatial in version 8i.

Oracle Spatial allows you to store georeferenced objects in an Oracle database and to perform spatial queries, such as getting the list of objects that intersect a specific polygon.

Oracle has written two implementations of Oracle Spatial:

  • An implementation based on relational tables, available since Oracle 7.3.

  • An implementation based on the Object model, available since Oracle 8.i, that also contains the relational implementation of Oracle Spatial.

The ilvdbmaps library supports reading/writing data in the relational and the object model of SDO through two different packages of classes.

To use these utilities in an application, you need the following:

  • Access to an Oracle Server with the Spatial package. Moreover, the database environment should be correctly installed. For instance, do not forget to set the ORACLE_HOME variable.

  • Certain privileges to retrieve data and write (if you plan to use the writer class) to your Oracle database. For example, you may need a special account with read/write access to the SDO packages.

  • As the implementation of this library uses DB Link for database access, you should be familiar with it (in particular, you should know the IldDbms, IldRequest, IldNewDbms, and IldErrorReporter classes).

  • DB Link product installed. The ilvdbmaps library uses the dynamic load feature of DB Link so that you have to install the shared versions of the dbora8(1) libraries. For more information about the dynamic load feature, refer to the DB Link User’s Manual. The Views Maps license also enables the DB Link license.

  • If you want to make specific usage of SDO, you should be familiar with Oracle and DB Link, in particular with the SQL language.