Oracle® Spatial GeoRaster Developer's Guide 11g Release 1 (11.1) Part Number B28398-01 |
|
|
View PDF |
The MDSYS.SDO_GEOR_UTL package contains subprograms (functions and procedures) for utility operations related to GeoRaster. This chapter presents reference information, with one or more examples, for each subprogram.
Format
SDO_GEOR_UTL.calcRasterNominalSize(
geor IN SDO_GEORASTER,
padding IN VARCHAR2 DEFAULT 'TRUE',
pyramid IN VARCHAR2 DEFAULT 'TRUE',
bitmapMask IN VARCHAR2 DEFAULT 'TRUE'
) RETURN NUMBER;
Description
Returns the total raster block length (in bytes) of a GeoRaster object, as if it were not compressed and did not contain any empty raster blocks.
Parameters
GeoRaster object.
The string TRUE
(the default) causes padding in the raster blocks to be considered; the string FALSE
causes padding in the raster blocks not to be considered.
The string TRUE
(the default) causes the size of any pyramids to be considered; the string FALSE
causes the size of any pyramids not to be considered.
The string TRUE
(the default) causes any associated bitmap masks to be considered; the string FALSE
causes any associated bitmap masks not to be considered. For an explanation of bitmap masks, see Section 1.8.
Usage Notes
This function does not consider any LOB storage overhead, so the result is only an approximation of the real storage requirements for the GeoRaster object.
The result of this function will be greater than or equal to the result of the SDO_GEOR_UTL.calcRasterStorageSize function on the same GeoRaster object. If this function returns a larger value than the SDO_GEOR_UTL.calcRasterStorageSize function on the same GeoRaster object, the difference in the values reflects the space saved by the use of compression or empty raster blocks, or both.
For information about GeoRaster compression, see Section 1.10.
Examples
The following example calculates the nominal raster size (in bytes) of a GeoRaster object, according to its current blocking scheme. The returned size includes (by default) any padding in the raster blocks, any associated bitmap masks, and any pyramids.
SELECT SDO_GEOR_UTL.calcRasterNominalSize(georaster) nsize FROM georaster_table WHERE georid=1; NSIZE ---------- 289150
Format
SDO_GEOR_UTL.calcRasterStorageSize(
geor IN SDO_GEORASTER
) RETURN NUMBER;
Description
Returns the actual length (in bytes) of all raster blocks of a GeoRaster object.
Parameters
GeoRaster object.
Usage Notes
The function calculates the actual length of all raster blocks of a GeoRaster object. It does not consider any LOB storage overhead, so the result is only an approximation of the real storage size of the GeoRaster object. In essence, this function executes the following statement:
EXECUTE IMMEDIATE 'SELECT SUM(DBMS_LOB.getLength(rasterBlock)) FROM ' || geor.rasterDataTable || ' WHERE rasterId=' || geor.rasterId;
The result of this function will be less than or equal to the result of the SDO_GEOR_UTL.calcRasterNominalSize function on the same GeoRaster object. If this function returns a smaller value than the SDO_GEOR_UTL.calcRasterNominalSize function on the same GeoRaster object, the difference in the values reflects the space saved by the use of compression or empty raster blocks, or both.
Examples
The following example calculates ratio (as a decimal fraction) of the actual size to the nominal size of a specified GeoRaster object. In this example, the actual size is about one-twentieth (1/20) of the nominal size.
SELECT SDO_GEOR_UTL.calcRasterStorageSize(georaster)/ SDO_GEOR_UTL.calcRasterNominalSize(georaster) ratio FROM georaster_table WHERE georid=1; RATIO ---------- .056198816
Format
SDO_GEOR_UTL.createDMLTrigger(
tableName VARCHAR2,
columnName VARCHAR2);
Description
Creates the required standard GeoRaster data manipulation language (DML) trigger on a GeoRaster column in a GeoRaster table, so that the appropriate operations are performed when its associated trigger is fired.
Parameters
Name of a GeoRaster table (the table containing rows with at least one GeoRaster object column).
Name of a column of type SDO_GEORASTER in the GeoRaster table.
Usage Notes
To maintain the referential integrity of GeoRaster data structures, you should always use this procedure to create the standard GeoRaster DML trigger on each GeoRaster table and GeoRaster column combination before you perform any DML operations on the table. For example, if the GeoRaster table contains two GeoRaster columns, call this procedure twice, specifying the appropriate table name and column name for each call.
For more information about the standard GeoRaster DML trigger, including the operations that it performs, see Section 3.1.3.
Examples
The following example creates the standard GeoRaster DML trigger for a table named XYZ_GEOR_TAB containing a GeoRaster column named GEOR_COL.
EXECUTE sdo_geor_utl.createDMLTrigger('XYZ_GEOR_TAB', 'GEOR_COL');
Format
SDO_GEOR_UTL.makeRDTNamesUnique;
Description
Renames some existing raster data tables that do not have unique names so that all raster data table names are unique within the database, and updates the GeoRaster system data and all affected GeoRaster objects to reflect the new names.
Parameters
None.
Usage Notes
If one or more raster data tables have the same name (under different schemas), you can use this procedure or the SDO_GEOR_UTL.renameRDT procedure, or both, to eliminate the duplication.
Run this procedure when you are connected to the database with the DBA role.
This procedure is not transactional, and the result cannot be rolled back.
Examples
The following example automatically renames some existing raster data tables that do not have unique names so that all raster data table names are unique within the database, and it updates the GeoRaster system data and all affected GeoRaster objects to reflect the new names.
EXECUTE sdo_geor_utl.makeRDTNamesUnique;
Format
SDO_GEOR_UTL.renameRDT(
oldRDTs VARCHAR2,
newRDTs VARCHAR2 DEFAULT NULL);
Description
Renames one or more existing raster data tables owned by the current user, and updates the GeoRaster system data and all affected GeoRaster objects to reflect the new names.
Parameters
Name of the raster data table or tables to be renamed. For multiple tables, use a comma-delimited list.
New names to be assigned to the raster data table or tables that are specified in oldRDTs
. For multiple tables, use a comma-delimited list with an order exactly reflecting the names in oldRDTs
. If this parameter is null, GeoRaster assigns a unique new name to each input raster data table.
Usage Notes
If one or more raster data tables owned by different users have the same name, you can use this procedure or the SDO_GEOR_UTL.makeRDTNamesUnique procedure, or both, to eliminate the duplication.
Before using this procedure, you must connect to the database as the owner of the raster data table or tables. You cannot use this procedure to rename a raster data table owned by another user.
If any table in oldRDTs
is not included in the GeoRaster system data, it is ignored.
If any table in newRDTs
conflicts with a name in the GeoRaster system data or with the name of another object owned by the current user, an exception is raised.
This procedure is not transactional, and the result cannot be rolled back.
Examples
The following example renames the raster data tables RDT_1 and RDT_2 to ST_RDT_1 and ST_RDT_2, respectively.
CONNECT scott/tiger; . . . EXECUTE sdo_geor_utl.renameRDT('RDT_1,RDT_2','ST_RDT_1,ST_RDT_2');