Writer Directives
The directives processed by the Informix Spatial writer are listed below. The suffixes shown are prefixed by the current <WriterKeyword> in a mapping file. By default, the <WriterKeyword> for the Informix Spatial writer is INFXSPATIAL.
DATASET, USER_NAME, PASSWORD, BEGIN_SQL{n}, and END_SQL{n}
The DATASET, USER_NAME, PASSWORD, BEGIN_SQL{n}, and END_SQL{n} directives operate in the same manner as they do for the Informix Spatial reader. The remaining writer-specific directives are listed below.
DEF
Required/Optional: Required
Each Informix Spatial table must be defined before it can be written. The general form of an Informix Spatial definition statement is:
INFXSPATIAL_DEF <tableName> \ [infx_type <type>] \ [infx_overwrite_table <YES|NO|TRUNCATE>] \ [infx_update_key_columns <column>[,<column>]...] \ [infx_delete_key_columns <column>[,<column>]...] \ [infx_geometry_column <geometry>] \ [infx_multi_geometry <YES|NO|FIRST_FEATURE>] \ [infx_offset_x <x offset value>] \ [infx_offset_y <y offset value>] \ [infx_scale_x <x/y scale value>] \ [infx_srid <SRID value>] \ [<fieldName> <fieldType>]*
The table definition allows complete control of the layer that will be created. If the layer already exists, the majority of the DEF line parameters will be ignored and need not be given.
If the table does not exist, then the field names and types are used to first create the table. In any case, if a <fieldType> is given, it may be any field type supported by the target database.
The Informix Spatial writer will use the infx_geometry_column parameter to set the name of geometry column for the new table. If the infx_geometry_column parameter is not specified then a default name of “geometry” will be used for the geometry column.
The configuration parameters present on the definition line are described in the following table:
Parameter |
Contents |
infx_type |
This specifies the type of geometry the features to be written to the layer will have. |
infx_overwrite_table |
This parameter can be set to one of
|
infx_update_key_ |
This instructs the Informix Spatial writer to perform an For example: infx_update_key_columns ID,NAME In this case the FME attribute is always matched against the Informix column with the same name. Also, the target table is always the feature type specified in the |
infx_delete_key_ |
This instructs the Informix Spatial writer to perform a For example:
would delete those rows in the table whose values match the attribute values passed in through this |
infx_geometry_column |
This parameter can be used to specify the name of the spatial layer (geometry column name). If it is not specified the default name of “geometry” will be used for the spatial layer. |
infx_multi_geometry |
This parameter is in effect only when creating a new table. It specifies whether geometry features should be written as multi geometries (e.g. ST_MULTIPOINT) or single geometries (e.g., ST_POINT).
Note that of the three options, YES is the least lossy. With NO and FIRST_FEATURE, it is possible to have a single IFMEMultiPoint feature be broken up into multiple IFMEPoints, which would result in multiple rows in the target table. |
infx_offset_x infx_offset_y |
This parameter is enabled only when creating a new table. infx_offset_x and infx_offset_y correspond to the columns FALSEX and FALSEY in the system table SDE.SPATIAL_REFERENCES. This parameter specifies the minimum x (y) coordinate of the spatial reference system for the target table. If a geometry feature has x (y) coordinates below this value, then the feature is rejected or translation is aborted depending on the value of the writer directive ABORT_ON_BAD_DATA. |
infx_scale_x |
This parameter is enabled only when creating a new table. This parameter specifies the resolution of the spatial reference system. The resolution of the spatial reference system is equal to 1 divided by infx_scale_x. For example, if infx_scale_x is 1, all coordinates will be rounded to integers. As another example, if infx_scale_x is 10, 1/10 is 0.1, and all coordinates will be rounded to the nearest 0.1, which means a coordinate value of 2.149 will be written as 2.1. infx_scale_x corresponds to the column XYUNITS in the system table SDE.SPATIAL_REFERENCES. The parameters infx_offset_x, infx_offset_y, and infx_scale_x together define the maximum x and y coordinates in the spatial reference system for the target table. If a geometry feature has x (y) coordinates above these maximums, then the feature is rejected or translation is aborted depending on the value of the writer directive ABORT_ON_BAD_DATA. |
infx_srid | The SRID that will be attached to all geometry. This SRID must exist in the SPATIAL_REFERENCE table. If left blank, the SRID will be determined from the feature coordinate system. |
TRANSACTION_INTERVAL
This statement informs the FME about the number of features to be placed in each transaction before a transaction is committed to the database.
If the INFXSPATIAL_TRANSACTION_INTERVAL statement is not specified, then a value of 1000 is used as the transaction interval.
Parameter |
Contents |
<transaction_interval> |
The number of features in a single transaction. |
Default: 1000
Example:
INFXSPATIAL_TRANSACTION_INTERVAL 5000
Workbench Parameter: Transaction Interval
ABORT_ON_BAD_DATA
Required/Optional: Optional
Some features’ geometries may fail Informix Spatial’s check constraints based on the offset, scale, and coordinate system values. These features, as well as others with out-of-range or invalid attribute values, will be rejected and cannot be written to the database. If the value of this directive is YES then the translation will be aborted immediately after encountering such a problem. If this directive is set to NO then the translation will continue but the features with rejected geometry will not be written to the database.
Values: YES | NO
Default: NO
Example:
INFXSPATIAL_ABORT_ON_BAD_DATA YES
Workbench Parameter: Abort Translation on Bad Data