Attribute Types
Attribute Names
Many formats have restrictions on the structure and format of attribute names. Esri Shape format, for example, permits UPPERCASE names only and has a maximum length of ten characters for attribute names.
When creating a workspace, FME converts attribute names to UPPERCASE in the destination schema if needed. In such a case, attribute connections cannot be implied so FME generates schema mapping that joins source attributes to the destination.
Note, however, that this is just a starting point. Edits to the workspace may break the FME generated schema mapping and, therefore, require you to create your own attribute connections.
Attribute Field Size
Some formats carry restrictions on attribute sizes, for example a maximum length of character field or maximum number in a numeric field. Where possible, FME generates a destination schema that reflects any such limitations.
Attribute Data Types
Different formats support different data types. Even when two formats support the same data type, it is often represented by a different name. In this situation, FME must decide how to map attributes between data types.
FME solves the problem by supporting all of these data types internally within its enhanced data model. A metafile for the reader format instructs FME how to map its attribute data types to the FME model and a second metafile instructs FME how to map its model types to the destination schema.
Examples of Attribute Data Type Mapping
This is the data type mapping for MapInfo data:
char(width) | fme_char(width) |
date | fme_date |
decimal(width,decimal) | fme_decimal(width,decimal) |
float | fme_real64 |
integer | fme_int32 |
logical | fme_boolean |
smallint | fme_int16 |
This is the data type mapping for Oracle data:
char(width) | fme_char(width) |
float | fme_real32 |
number(width,decimal) | fme_decimal(width,decimal) |
double | fme_real64 |
integer | fme_int32 |
logical | fme_boolean |
smallint | fme_int16 |
These mappings show that a MapInfo decimal
type attribute becomes an fme_decimal
type in the FME data model, which then becomes a number
data type when written to Oracle.