The SDO_MIGRATE.TO_CURRENT subprogram described in this chapter has both procedure and function interfaces. As a procedure, it lets you upgrade spatial geometry tables from previous releases of Spatial; and as a function, it lets you upgrade a single SDO_GEOMETRY object.
This subprogram has very limited uses, as explained in the Usage Notes for its documentation.
tabname IN VARCHAR2
[, column_name IN VARCHAR2]);
tabname IN VARCHAR2,
column_name IN VARCHAR2
[, commit_int IN NUMBER]);
geom IN SDO_GEOMETRY,
dim IN SDO_DIM_ARRAY
) RETURN SDO_GEOMETRY;
layer IN VARCHAR2,
newtabname IN VARCHAR2,
gidcolumn IN VARCHAR2,
geocolname IN VARCHAR2,
layer_gtype IN VARCHAR2,
updateflag IN VARCHAR2);
Upgrades data from the obsolete Spatial relational model (release 8.1.5 or earlier) to the current release, or upgrades one or more object-relational model (release 8.1.6 or later) geometries that need to be upgraded (as explained in the Usage Notes). As a procedure, TO_CURRENT upgrades an entire layer (all geometries in a column); as a function, TO_CURRENT upgrades a single geometry object, which must be of type SDO_GEOMETRY.
For upgrading a layer, the procedure format depends on whether you are upgrading from the Spatial relational model (release 8.1.5 or earlier) or object-relational model (release 8.1.6 or later). See the Usage Notes for the model that applies to you.
Note:This procedure applies to two-dimensional geometries only. It is not supported for three-dimensional geometries.
Table with geometry objects.
tabname that contains geometry objects. If
column_name is not specified or is specified as null, the column containing geometry objects is upgraded.
Number of geometries to upgrade before Spatial performs an internal commit operation. If
commit_int is not specified, no internal commit operations are performed during the upgrade.
If you specify a
commit_int value, you can use a smaller rollback segment than would otherwise be needed.
Single geometry object to be upgraded to the current release.
Dimensional information array for the geometry object to be upgraded. The SDO_DIM_ARRAY type is explained in Section 2.8.3.
Name of the layer to be upgraded.
Name of the new table to which you are upgrading the data.
Name of the column in which to store the GID from the old table.
Name of the column in the new table where the geometry objects will be inserted.
One of the following values: POINT or NOTPOINT (default).
If the layer you are upgrading is composed solely of point data, set this parameter to POINT for optimal performance; otherwise, set this parameter to NOTPOINT. If you set the value to POINT and the layer contains any nonpoint geometries, the upgrade might produce invalid data.
One of the following values: UPDATE or INSERT (default).
If you are upgrading the layer into an existing populated attribute table, set this parameter to UPDATE; otherwise, set this parameter to INSERT.
This subprogram is not needed for normal upgrades of Oracle Spatial. It is sometimes needed if spatial data is loaded using a third-party loader and if the resulting geometries have the wrong orientation or invalid ETYPE or GTYPE values. For information about using this subprogram as part of the recommended procedure for loading and validating spatial data, see Section 4.3.
This subprogram upgrades the specified geometry or all geometry objects in the specified layer so that their SDO_GTYPE and SDO_ETYPE values are in the format of the current release:
SDO_ETYPE values are as discussed in Section 2.2.4.
Geometries are ordered so that exterior rings are followed by their interior rings, and coordinates are saved in the correct rotation (counterclockwise for exterior rings, and clockwise for interior rings).
If you are you upgrading from the Spatial relational model (release 8.1.5 or earlier), consider the following when using this procedure:
The new table must be created before you call this procedure.
If the data to be upgraded is geodetic, the tolerance value (SDO_TOLERANCE column value in the <layername>_SDODIM table or view) must be expressed in decimal degrees (for example, 0.00000005).
The procedure converts geometries from the relational model to the object-relational model.
A commit operation is performed by this procedure.
If any of the upgrade steps fails, nothing is upgraded for the layer.
layer is the underlying layer name, without the _SDOGEOM suffix.
The old SDO_GID is stored in
SDO_ETYPE values are created, using the values discussed in Section 2.2.4.
The procedure orders geometries so that exterior rings are followed by their interior rings, and it saves coordinates in the correct rotation (counterclockwise for exterior rings, and clockwise for interior rings).
The following example changes the definitions of geometry objects in the ROADS table from the format of a release later than 8.1.5 to the format of the current release.