The Java Shapefile converter transforms an ESRI Shapefile into an Oracle Database table for use with Oracle Spatial and Locator. The Shapefile converter uses the Oracle Spatial Java-based Shapefile AdapterShapefileJGeom
and SampleShapefileToJGeomFeature
classes to load a Shapefile directly into a database table, with the Oracle-equivalent .dbf
data types for the attribute columns and the SDO_GEOMETRY data type for the geometry column.
To load a Shapefile into the database, use the converter as described in this appendix. (You can also use the Adapter
class to create your own applications and interfaces that transform Shapefiles to SDO_GEOMETRY or JGeometry data types; however, doing this is beyond the scope of this manual. For information about Shapefile-related classes, see Oracle Spatial Java API Reference).
To use the Shapefile converter, you must have the following:
The following Oracle utilities and JDBC libraries: ojdbc14.jar
or ojdbc5.jar
, sdoutl.jar
, and sdoapi.jar
One or more ESRI Shapefiles (.shp
, .shx
, .and .dbf
files) to be converted
The following is the syntax for the Shapefile converter. (Enter the command all on a single line.)
> java -cp [ORACLE_HOME]/jdbc/lib/ojdbc5.jar:[ORACLE_HOME]/md/jlib/sdoutl.jar:[ORACLE_HOME]/md/jlib/sdoapi.jar oracle.spatial.util.SampleShapefileToJGeomFeature -h db_host -p db_port -s db_sid -u db_username -d db_password -t db_table -f shapefile_name [-i table_id_column_name][-r srid][-g db_geometry_column][-x max_x,min_x][-y max_y,min_y][-o tolerance]
-h
: Host machine with an existing Oracle database
-p
: Port on the host machine (for example, 1521)
-s
: SID (database name) on the host machine
-u
: Database user
-d
: Password for the database use
-t
: Table name for the converted Shapefile
-f
: File name of an input Shapefile (with or without extension)
-i
: Column name for unique numeric ID, if required
-r
: Valid Oracle SRID for coordinate system; use 0 if unknown
-g
: Preferred SDO_GEOMETRY column name
-x
: Bounds for the X dimension; use -180,180 if unknown
-y
: Bounds for the Y dimension; use -90,90 if unknown
-o
: Load tolerance fields (x and y) in metadata; if not specified, tolerance fields are 0.05
-a
: Append Shapefile data to an existing table
-n
: Start ID for column specified in -i parameter
-c
: Commit interval; by default, commits occur every 1000 conversions and at the end
-v
: Println interval; by default, a display every 10 conversions
The following examples show the use of the Shapefile converter to transform a file named shapes
to a table named shapes
containing an SDO_GEOMETRY column named geom
. The SRID for the Longitude/Latitude (WGS 84) coordinate system is used (8307).
> setenv clpath $ORACLE_HOME/jdbc/lib/ojdbc5.jar:$ORACLE_HOME/md/jlib/sdoutl.jar:$ORACLE_HOME/md/jlib/sdoapi.jar
> java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature -h gis01 -p 1521 -s orcl -u scott -d <password-for-scott> -t shapes -f shapes.shp -r 8307 -g geom
> java -classpath %ORACLE_HOME%\jdbc\lib\ojdbc5.jar;%ORACLE_HOME%\md\jlib\sdoutl.jar;%ORACLE_HOME%\md\jlib\sdoapi.jar oracle.spatial.util.SampleShapefileToJGeomFeature -h gis01 -p 1521 -s orcl -u scott -d <password-for-scott> -t shapes -f shapes.shp -r 8307 -g geom