The data is a full-word binary integer, where
n is an optionally supplied length of 1, 2, 4, or 8. If no length specification is given, then the length, in bytes, is based on the size of a
INT in the C programming language on your particular platform.
INTEGERs are not portable because their byte size, their byte order, and the representation of signed values may be different between systems. However, if the representation of signed values is the same between systems, then SQL*Loader may be able to access
INTEGER data with correct results. If
INTEGER is specified with a length specification (
n), and the appropriate technique is used (if necessary) to indicate the byte order of the data, then SQL*Loader can access the data with correct results between systems. If
INTEGER is specified without a length specification, then SQL*Loader can access the data with correct results only if the size of a
INT in the C programming language is the same length in bytes on both systems. In that case, the appropriate technique must still be used (if necessary) to indicate the byte order of the data.
Specifying an explicit length for binary integers is useful in situations where the input data was created on a platform whose word length differs from that on which SQL*Loader is running. For instance, input data containing binary integers might be created on a 64-bit platform and loaded into a database using SQL*Loader on a 32-bit platform. In this case, use
INTEGER(8) to instruct SQL*Loader to process the integers as 8-byte quantities, not as 4-byte quantities.
INTEGER is treated as a
SIGNED quantity. If you want SQL*Loader to treat it as an unsigned quantity, then specify
UNSIGNED. To return to the default behavior, specify