SQL Reference Guide > SQL Reference Guide > SQL Statements > INSERT INTO EXTERNAL CSV (X100 Only)
Was this helpful?
INSERT INTO EXTERNAL CSV (X100 Only)
Valid in: SQL, ESQL, OpenAPI, ODBC, JDBC, .NET
The INSERT INTO EXTERNAL CSV statement writes an X100 table to a local file system. The result is either a single CSV file or a collection of CSV files, depending on whether the query is run in parallel. The number of files produced cannot be specified, but can be indirectly influenced by setting [engine] max_parallelism_level.
This statement has the following format:
INSERT INTO EXTERNAL CSV 'filename' SELECT ... [WITH options]
filename
Specifies the output location, which can be either a local file system path. If multiple files are created, they use the filename with suffixes in the form '.nnn' where nnn is the file number.
Files are written by the server, so the server must have permissions to write to the specified path.
For security reasons, the server is not allowed to overwrite existing files. The query will end with an error if any of the output files already exist.
SELECT
Specifies a SELECT statement that selects the table data to be written.
WITH options
Specifies optional WITH clause options separated by a comma. Valid options are:
NULL_MARKER='null_value'
Specifies the text to use for the NULL valued attributes. When a parameter contains commas or spaces, double quotation marks must be used. Default: 'null'
FIELD_SEPARATOR='field_separator'
Specifies the character to use to separate fields. The delimiter must be a single character. Default: , (comma)
FLOAT_FORMAT='xwidth.prec'
Specifies the format to export floating point numbers. The format has four different parameters:
x = format specifier:
f (decimal representation), e.g 503.42003
e (scientific notation), e.g. 5.0342003e+03
g (default): individually chooses the best representation between f and e (i.e. scientific format if there are significant digits after prec zeros in the fraction, otherwise decimal).
Uppercase format letters are also possible, they generate an uppercase exponent letter (e.g. 5.0342003E+03)
width = total string width
"." = decimal point: any other specifier is possible (eg "," for 503,42003)
prec = number of decimal places
Default: ‘g79.38’
Note:  Very large, and very small (absolute value) numbers may cause rounding errors. This may occur if the exponent is larger than 78 or if the number of decimal places is larger than 14. It is recommended to use smaller formats, e.g. ‘g11.3’ to avoid such rounding errors.
 
RECORD_SEPARATOR='record_separator'
Specifies the character to use to separate records. The delimiter must be a single character. To specify a control character, use an escape sequence. Default: \n
WORK_DIR='file_directory'
Specifies the directory in which the files are created if the filename is relative. Default: /tmp
Last modified date: 04/26/2024