IBM Books

API Reference

sqluexpr - Export

Exports data from a database to one of several external file formats. The user specifies the data to be exported by supplying an SQL SELECT statement, or providing hierarchical information for typed tables.

Authorization

One of the following:

sysadm
dbadm

or CONTROL or SELECT privilege on each participating table or view.

Required Connection

Database

API Include File

sqlutil.h

C API Syntax



/* File: sqlutil.h */
/* API: Export */
/* ... */
SQL_API_RC SQL_API_FN
  sqluexpr (
    char * pDataFileName,
    sqlu_media_list * pLobPathList,
    sqlu_media_list * pLobFileList,
    struct sqldcol * pDataDescriptor,
    struct sqlchar * pActionString,
    char * pFileType,
    struct sqlchar * pFileTypeMod,
    char * pMsgFileName,
    short CallerAction,
    struct sqluexpt_out*  pOutputInfo,
    void * pReserved,
    struct sqlca * pSqlca);
/* ... */

Generic API Syntax



/* File: sqlutil.h */
/* API: Export */
/* ... */
SQL_API_RC SQL_API_FN
  sqlgexpr (
    unsigned short DataFileNameLen,
    unsigned short FileTypeLen,
    unsigned short MsgFileNameLen,
    char * pDataFileName,
    sqlu_media_list * pLobPathList,
    sqlu_media_list * pLobFileList,
    struct sqldcol * pDataDescriptor,
    struct sqlchar * pActionString,
    char * pFileType,
    struct sqlchar * pFileTypeMod,
    char * pMsgFileName,
    short CallerAction,
    struct sqluexpt_out*  pOutputInfo,
    void * pReserved,
    struct sqlca * pSqlca);
/* ... */

API Parameters

DataFileNameLen
Input. A 2-byte unsigned integer representing the length in bytes of the data file name.
FileTypeLen
Input. A 2-byte unsigned integer representing the length in bytes of the file type.
MsgFileNameLen
Input. A 2-byte unsigned integer representing the length in bytes of the message file name.
pDataFileName
Input. A string containing the path and the name of the external file into which the data is to be exported.
pLobPathList
Input. An sqlu_media_list using media_type SQLU_LOCAL_MEDIA, and the sqlu_media_entry structure listing paths on the client where the LOB files are to be stored.

When file space is exhausted on the first path in this list, the API will use the second path, and so on.

pLobFileList
Input. An sqlu_media_list using media_type SQLU_CLIENT_LOCATION, and the sqlu_location_entry structure containing base file names.

When the name space is exhausted using the first name in this list, the API will use the second name, and so on.

When creating LOB files during an export, file names are constructed by appending the current base name from this list to the current path (from pLobFilePath), and then appending a 3-digit sequence number. For example, if the current LOB path is the directory /u/foo/lob/path, and the current LOB file name is bar, then the LOB files created will be /u/foo/lob/path/bar.001, /u/foo/lob/pah/bar.002, and so on.

pDataDescriptor
Input. Pointer to an sqldcol structure specifying the column names for the output file. The value of the dcolmeth field determines how the remainder of the information provided in this parameter is interpreted by EXPORT. Valid values for this field during an EXPORT (defined in sqlutil) are:
SQL_METH_N
Names
SQL_METH_D
Default.

If dcolmeth is SQL_METH_N, specified names are given for the columns in the external file.

If pDataDescriptor is NULL, or dcolmeth is set to SQL_METH_D, default names are used for the columns in the external file. In this case, the number of columns and the column specification array are both ignored. The column names in the external file are derived from the processing of the SELECT statement specified in pActionString.

For more information, see SQLDCOL.

pActionString
Input. Pointer to a structure containing a valid dynamic SQL SELECT statement. The structure contains a 2-byte length field, followed by the characters that make up the SELECT statement. The SELECT statement specifies the data to be extracted from the database and written to the external file.

The columns for the external file (from pDataDescriptor), and the database columns from the SELECT statement, are matched according to their respective list/structure positions. The first column of data selected from the database is placed in the first column of the external file, and its column name is taken from the first element of the external column array.

Note:The syntax that is to be used for typed tables is described in the Command Reference.

pFileType
Input. A string indicating the format of the data within the external file. Supported external file formats (defined in sqlutil) are:
SQL_DEL
Delimited ASCII, for exchange with dBase, BASIC, and the IBM Personal Decision Series programs, and many other database managers and file managers.
SQL_WSF
Worksheet formats for exchange with Lotus Symphony and 1-2-3 programs.
SQL_IXF
PC version of the Integrated Exchange Format, the preferred method for exporting data from a table, so that it can later be imported or loaded into the same table or into another database manager table.
pFileTypeMod
Input. A pointer to a structure containing a 2-byte long field, followed by an array of characters that specify one or more processing options. If this pointer is NULL, or the structure pointed to has zero characters, this action is interpreted as selection of a default specification.

Not all options can be used with all of the supported file types.

For more information, see the Command Reference.

pMsgFileName
Input. A string containing the destination for EXPORT error, warning, and informational messages. Can be the path and name of an operating system file or a standard device. If the file already exists, it is overwritten. If it does not exist, a file is created.
CallerAction
Input. The action requested by the caller. It is defined as an integer by the application. Valid values (defined in sqlutil) are:
SQLU_INITIAL
Initial call. This value must be used on the first call to the API.

If the initial call or any subsequent call returns and requires the calling application to perform some service prior to completing the requested export, the caller action must be set to one of the following:

SQLU_CONTINUE
Continue processing. The action requested by the utility has completed, so the system can continue processing the initial request.
SQLU_TERMINATE
Terminate processing. The requested action was not performed, so the system terminates the initial request.
pOutputInfo
Ouput. Return value of the number of rows exported. For more information about this structure, see SQLUEXPT-OUT.
pReserved
Reserved for future use.
pSqlca
Output. A pointer to the sqlca structure. For more information about this structure, see SQLCA.

REXX API Syntax



EXPORT :stmt TO datafile OF filetype
[MODIFIED BY :filetmod] [USING :dcoldata]
MESSAGES msgfile [ROWS EXPORTED :number]
 
CONTINUE EXPORT
 
STOP EXPORT

REXX API Parameters

stmt
A REXX host variable containing a valid dynamic SQL SELECT statement. The statement specifies the data to be extracted from the database.
datafile
Name of the file into which the data is to be exported.
filetype
The format of the data within the data file. The supported file formats are:

DEL
Delimited ASCII

WSF
Worksheet formats

IXF
PC version of Integrated Exchange Format.
filetmod
A host variable containing additional information unique to the chosen file type. If no MODIFIED BY clause is specified, the default filetmod is used.
dcoldata
A compound REXX host variable containing the alternate column names to be used in the data file. In the following, XXX is the name of the host variable:

XXX.0
Number of columns (number of elements in the remainder of the variable)

XXX.1
First column name

XXX.2
Second column name

XXX.3
and so on.

If this parameter is null, or a value for dcoldata has not been specified, the utility uses the column names from the database.

msgfile
File (or path) or device name where error and warning messages are to be sent.
number
A host variable that will contain the number of exported rows.

Sample Programs

C
\sqllib\samples\c\impexp.sqc

COBOL
\sqllib\samples\cobol\impexp.sqb

FORTRAN
\sqllib\samples\fortran\impexp.sqf

REXX
\sqllib\samples\rexx\impexp.cmd

Usage Notes

Be sure to complete all table operations and release all locks before calling the EXPORT API. This can be done either by issuing a COMMIT after closing all cursors opened WITH HOLD, or by issuing a ROLLBACK. A COMMIT is performed during the export process.

A warning message is issued if the number of columns (dcolnum) in the external column name array, pDataDescriptor, is not equal to the number of columns generated by the SELECT statement. In this case, the number of columns written to the external file is the lesser of the two numbers. Excess database columns or external column names are not used to generate the output file.

The messages placed in the message file include the information returned from the message retrieval service. Each message begins on a new line.

If the db2uexpm.bnd module or any other shipped .bnd files are bound manually, the format option on the binder must not be used.

The EXPORT utility produces a warning message whenever a character column with a length greater than 254 is selected for export to DEL format files.

PC/IXF import should be used to move data between databases. If character data containing row separators is exported to a delimited ASCII (DEL) file and processed by a text transfer program (moving, for example, between OS/2 and AIX systems), fields containing the row separators will shrink or expand.

PC/IXF file format specifications permit migration of data between OS/2 (IBM Extended Services for OS/2, OS/2 Extended Edition and DB2 for OS/2) databases and DB2 for AIX databases via export, binary copying of files between OS/2 and AIX, and import. The file copying step is not necessary if the source and the target databases are both accessible from the same client.

DB2 Connect can be used to export tables from DRDA servers such as DB2 for OS/390, DB2 for VM and VSE, and DB2 for OS/400. Only PC/IXF export is supported.

The EXPORT utility will not create multiple-part PC/IXF files when invoked from an AIX system.

Index definitions for a table are included in the PC/IXF file when the contents of a single database table are exported to a PC/IXF file with a pActionString beginning with SELECT * FROM tablename, and the pDataDescriptor parameter specifying default names. Indexes are not saved for views, or if the SELECT clause of the pActionString includes a join. A WHERE clause, a GROUP BY clause, or a HAVING clause in the pActionString will not prevent the saving of indexes. In all of these cases, when exporting from typed tables, the entire hierarchy must be exported.

The export utility will store the NOT NULL WITH DEFAULT attribute of the table in an IXF file if the SELECT statement provided is in the form SELECT * FROM tablename. When exporting from typed tables, the entire hierarchy must be exported.

See Also

sqluimpr - Import


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]

[ DB2 List of Books | Search the DB2 Books ]