Synopsis: Unload a select set to a disk file(s) in a portable binary file format
or load such a file into an insert statement. BLOB support incomplete
(unload side only and not debugged yet) to be completed in future
version. CLOB support also needs to be done along with UDT,
collections, multisets, etc.
Author(s): Art S. Kagel & Art Taylor
Version(s) supported: 5.xx, 6.0x, 7.xx
Revision 1.38 fixed the platform detection for HPUX systems.
Revisions 1.36 & 1.37 fix large file support on HP platforms.
Revision 1.35 contains some minor fixes to allow compilation on new
Revision 1.34 restores the source compatibility with ESQL/C 7.xx and
C4GL 7.xx! The code now uses a parallel array of qualifiers to hold
qualifiers for DATETIME and INTERVAL fields.
Revision 1.33 just improves portability. Seems HP places the NBO
functions in a different header than every other UNIX. Probably some
sad BSD leftover. Ahh well.
Revisions 1.24-1.32 FINALLY fix the binary loading and unloading of
DATETIME and INTERVAL columns! Also swabbed the three binary fields in
the dec_t structure on output/input so the output of DECIMAL and MONEY
columns is portable. Also Rev 1.31 should have fixed the problem
compiling on AIX with newer SDK versions. This broke ESQL 7.xx and
c4gl 7.xx compatibility.
Revisions 1.17-1.23 fix a few bugs and implement a portable file
format. You can now unload data on LittleEndian platforms like Intel
and reload on BigEndian platforms like Sparc, PARisc, & PowerPC.
Disabled binary DATETIME unloading, I still cannot get this to work
reliably and the text unload only takes one extra byte for YEAR TO
FRACTION(5). Also somewhere in here BLOB support was quietly completed.
The compatibility mode supports an old bug in the original version and
is only interesting for Bloomberg users needing to emulate that
version's input/output files.
There is a UNIX Text Utilities filter, ul, that underlines a text stream
so the naming of this utility is unfortunate. Maybe bload is a better
name. If typing 'man ...' gets you ul's help text you need to rename
When linking ul.ec on most System V derived UNIX systems you will need
to include libgen.a (-lgen). This is not true on most BSD derived UNIX
versions such as AIX, FreeBSD, and Linux as the contents of System V's
libgen are in libc instead on these systems.
Maybe support for UDTs and complex types.