ora2pgpro fully exports spatial objects from Oracle databases. There are some configuration directives that could be used to control the export.
AUTODETECT_SPATIAL_TYPEBy default, ora2pgpro is looking at indexes to see the spatial constraint type and dimensions defined under Oracle. Those constraints are passed at index creation using for example:
CREATE INDEX ... INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS('sdo_indx_dims=2, layer_gtype=point');
If those Oracle constraints parameters are not set, the default is to export those columns as generic type GEOMETRY to be able to receive any spatial type.
The AUTODETECT_SPATIAL_TYPE directive
allows to force ora2pgpro
to autodetect the real spatial type and dimensions
used in a spatial column otherwise a non-constrained
geometry type is used. Enabling this feature will force
ora2pgpro to scan a sample
of 50000 column to look at the GTYPE used.
You can increase or reduce the sample size by
setting the value of AUTODETECT_SPATIAL_TYPE
to the desired number of line to scan. The directive is enabled by
default.
For example, in the case of a column named shape
and defined with Oracle type
SDO_GEOMETRY, with
AUTODETECT_SPATIAL_TYPE disabled,
it will be converted as:
shape geometry(GEOMETRY) or shape geometry(GEOMETRYZ, 4326)
If the directive is enabled and the column just contains a single geometry type that uses a single dimension with a two or three dimensional polygon:
shape geometry(POLYGON, 4326) or shape geometry(POLYGONZ, 4326)
CONVERT_SRID
This directive allows you to control the automatic
conversion of Oracle SRID to
standard EPSG. If enabled,
ora2pgpro will use the
Oracle function
sdo_cs.map_oracle_srid_to_epsg()
to convert all SRIDs.
Enabled by default.
If the SDO_SRID returned by
Oracle is NULL, it will be
replaced by the default value 8307 converted to its EPSG
value: 4326 (see DEFAULT_SRID).
If the value is more than 1, all SRIDs will be forced to
this value, in this case DEFAULT_SRID
will not be used when Oracle
returns a null value and the value will be forced to
CONVERT_SRID.
Note that it is also possible to set the EPSG
value on Oracle side when
sdo_cs.map_oracle_srid_to_epsg() returns
NULL if your want to force the value:
system@db> UPDATE sdo_coord_ref_sys SET legacy_code=41014 WHERE srid = 27572;
DEFAULT_SRID
Use this directive to override the default EPSG SRID to be
used: 4326. Can be overwritten by
CONVERT_SRID, see above.
GEOMETRY_EXTRACT_TYPE
This directive can take three values: WKT
(default), WKB, and INTERNAL.
When it is set to WKT,
ora2pgpro will use
SDO_UTIL.TO_WKTGEOMETRY() to extract
the geometry data.
When it is set to WKB,
ora2pgpro will use the binary output
using SDO_UTIL.TO_WKBGEOMETRY().
If those two extract types
are calls at Oracle side,
they are slow and you can easily reach Out Of Memory when
you have a lot of rows. Also WKB is
not able to export 3D geometry and some geometries like
CURVEPOLYGON. In this case you may use
the INTERNAL extraction type. It will use
a Pure Perl library to convert the SDO_GEOMETRY
data into a WKT representation, the
translation is done on ora2pgpro side.
This is a work in progress, validate your exported data geometries
before use. Default spatial object extraction type is
INTERNAL.
POSTGIS_SCHEMAUse this directive to add a specific schema to the search path to look for PostGIS functions.
ST_SRID_FUNCTION
Oracle function to use
to extract the SRID from ST_Geometry
meta information. Default: ST_SRID,
for example, it should be set to sde.st_srid
for ArcSDE.
ST_DIMENSION_FUNCTION
Oracle function to use to extract
the dimension from ST_Geometry meta
information. Default: ST_DIMENSION, for
example it should be set to sde.st_dimention
for ArcSDE.
ST_GEOMETRYTYPE_FUNCTION
Oracle function to use
to extract the geometry type from a ST_Geometry
column.
Default: ST_GEOMETRYTYPE, for example it
should be set to sde.st_geometrytype for ArcSDE.
ST_ASBINARY_FUNCTION
Oracle function to be used
to convert an ST_Geometry value
into WKB format.
Default: ST_ASBINARY, for example it
should be set to sde.st_asbinary for ArcSDE.
ST_ASTEXT_FUNCTION
Oracle function to be used
to convert an ST_Geometry value
into WKT format.
Default: ST_ASTEXT, for example it should
be set to sde.st_astext for ArcSDE.