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 LONG
INT
in the C programming language on your particular platform.
INTEGER
s 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 LONG
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.
By default, 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 SIGNED
.