LOAD and UNLOAD
Informix®
Informix provides two SQL instructions to export / import data from / into a database table:
UNLOAD instruction copies rows from a database table into a text
file:UNLOAD TO "filename.unl" SELECT * FROM tab1 WHERE ..The
LOAD instructions insert rows from a text file into a database
table:LOAD FROM "filename.unl" INSERT INTO tab1Microsoft™ SQL Server
Microsoft SQL Server has LOAD and
UNLOAD instructions, but those commands are related to database backup and
recovery. Do not confuse with Informix commands.
Solution
LOAD and UNLOAD instruction are implemented in the Genero BDL
runtime system with basic INSERT (for LOAD) or
SELECT (for UNLOAD) SQL commands. The
LOAD and UNLOAD instruction can be
supported with various database servers.
However, LOAD and UNLOAD require the description of the column
types in order to work, that can lead to some differences in the data formatting.
LOAD instruction will automatically execute
a BEGIN WORK and COMMIT WORK when finished, or ROLLBACK
WORK if a row insertion failed while loading. Terminating a transaction will automatically
close cursors not defined WITH HOLD option. To workaround this situation, see more
details in the LOAD reference topic.The LOAD and UNLOAD BDL instructions are supported with Microsoft SQL Server with some limitations:
- The
LOADinstruction does not work with tables using emulatedSERIALcolumns because the generatedINSERTstatement holds theSERIALcolumn which is actually aIDENTITYcolumn in SQL Server. See the limitations of INSERT statements when using SERIAL types. - Starting with Microsoft SQL Server 2008,
Informix
DATETIMEdata is stored in SQL ServerDATETIME2(n<=5)orTIME(n<=5)columns, depending on the precision of the originalDATETIMEtype:- With
DATETIME2(n<=5)columns, the result ofLOADandUNLOADis equivalent to InformixDATETIME YEAR TO SECONDorDATETIME YEAR TO FRACTION(n)columns. The data format will be "YYYY-MM-DD hh:mm:ss[.fff...]", where fff... depends on the precision (n) of theDATETIME2(n)column. - With
TIME(n)columns, the result ofLOADandUNLOADis equivalent to InformixDATETIME HOUR TO SECONDorDATETIME HOUR TO FRACTION(n)columns. The data format will be "hh:mm:ss[.fff...]", where fff... depends on the precision (n) of theTIME(n)column.
- With
- With an Informix database, simple dates are unloaded with the DBDATE format (ex:"23/12/1998"). Therefore, unloading from an Informix database for loading into a Microsoft SQL Server database is not supported.