从外部文件或键盘将数据导入数据库表中。
output to filename
[ append ]
[ verbose ]
[ format output-format ]
[ escape character character ]
[ escapes { on | off}
[ delimited by string ]
[ quote string [ all ] ]
[ column widths (integer , . . . ) ]
[ hexidecimal { on | off | asis } ]
[ encoding encoding ]
output-format :
ascii | dbase | dbasell| dbaselll
| excel | fixed | foxpro | lotus | sql | xml
encoding : string or identifier
append – 将查询结果附加到现有输出文件的末尾,而不覆盖该文件的原有内容。如果未使用 append 子句,则缺省情况下 output 语句会覆盖输出文件的内容。如果输出格式为 ASCII、fixed 或 SQL,则 append 关键字有效。
verbose – 将有关查询的错误消息、用于选择数据的 SQL 语句以及数据本身写入到输出文件中。不包含数据的行带有两个连字符作为前缀。如果省略 verbose(缺省设置),则仅将数据写入到文件中。如果输出格式为 ASCII、fixed 或 SQL,则 verbose 有效。
允许的输出格式包括:
ascii – 输出为 ASCII 格式文件,每个输出行在该文件中占一行。所有值都用逗号分隔,字符串用撇号(单引号)引起来。可以使用 delimited by 和 quote 子句更改分隔符和引号字符串。如果在 quote 子句中指定 all,则所有值(不止是字符串)都用引号引起来。
还可使用其它三种特殊序列。两个字符表示一个换行符,“\”表示单个 \,序列 \xDD 表示具有十六进制代码 DD 的字符。这是缺省输出格式。
dbasell – 输出为 DBASEll 文件,该文件包含列定义。最多可以输出 32 列。列名被截断为 11 个字符,每行数据都单占一行。如果表不存在,则创建表。
dbaselll – 输出为 dBASE III 格式文件,该文件包含列定义。最多可以输出 128 列。列名被截断为 11 个字符,每一列中的每行数据都被截断为 255 个字符。
excel – 输出为 Excel 2.1 工作表。工作表的第一行包含列标签(如果未定义任何标签,则为列名)。后续的工作表行包含实际的表数据。
fixed – 输出为固定格式,每一列都具有固定宽度。可使用 column widths 为每一列指定宽度。此格式不输出任何列标题。
如果省略 column widths 子句,则每一列的宽度通过该列的数据类型来计算,计算出的宽度足以存放该数据类型的任何值。例外情况是 long varchar 和 long binary 数据,它们缺省为 32K。
foxpro – 输出为 FoxPro 格式文件,该文件包含列定义。最多可以输出 128 列。列名被截断至 11 个字符。列名被截断为 11 个字符,每一列中的每行数据都被截断为 255 个字符。
html – 输出为超文本标记语言格式。
lotus – 输出为 Lotus WKS 格式工作表。列名作为第一行放置在工作表中。其它软件(例如 Lotus 1-2-3)可装载的 Lotus WKS 格式工作表有对最大大小的特定限制。Interactive SQL 生成的文件没有大小限制。
SQL – 输出为重新创建表中信息所需的 Interactive SQL input 语句。
XML – 输出为以 UTF-8 格式编码的 XML 文件,其中包含嵌入式 DTD。二进制值以 CDATA 块进行编码,二进制数据显示为两位数十六进制字符串。input 语句不接受将 XML 作为文件格式。
escape character – 存储为十六进制代码和符号的字符的缺省转义字符是反斜杠 (\),例如,\x0A 表示换行符。
可以使用 escape character 更改缺省转义字符。例如,要将感叹号用作转义字符,请输入:
... escape character ‘!’
escapes – 如果启用了 escapes(缺省设置),数据库服务器将反斜杠字符后面的字符识别并解释为特殊字符。换行符可以作为组合 \n 包含在数据中,其它字符可以作为十六进制 ASCII 代码包含在数据中,例如使用 \x09 表示制表符。连续两个反斜杠字符 (\) 解释为一个反斜杠。反斜杠后跟除 n、x、X 或 \ 外的其它任何字符都解释为两个单独的字符。例如,\q 将插入一个反斜杠和字母 q。
delimited by – 仅用于 ASCII 输出格式。分隔符字符串放置在列之间(缺省为逗号)。
quote – 仅用于 ASCII 输出格式。引号字符串放置在字符串值的两边。缺省值为单引号字符。如果在 quote 子句中指定 all,则所有值两边都放置引号字符串,并非仅字符串两边。
column widths – 为 fixed 格式输出指定列宽。
hexidecimal – 仅用于 ASCII 格式,指定如何卸载二进制数据。设置为 on 时,以 0xabcd 格式卸载二进制数据。设置为 off 时,在卸载时转义二进制数据 (\xab\xcd)。设置为 asis 时,将按原样写入值,即不进行任何转义,即使值包含控制字符也是如此。asis 对于包含格式字符(如制表符或回车符)的文本很有用。
encoding – 允许指定用于写入文件的编码。encoding 只能用于 ASCII 格式。
如果未指定 encoding,Interactive SQL 将按如下方式确定用于写入文件的代码页,列表中位置靠前的代码页值优先于位置靠后的值:
使用 default_isql_encoding 指定的代码页(如果设置此选项)
启动 Interactive SQL 时使用 -codepage 选项指定的代码页
运行 Interactive SQL 的计算机的缺省代码页
将 employee 表的内容放置在 ASCII 格式的文件中:
select * from employee go output to employee.txt format ASCII
将 employee 表的内容放置在现有文件的末尾,同时还在此文件中包含有关查询的所有消息:
select * from employee go output to employee.txt append verbose
假定您需要导出包含嵌入式换行符的值。换行符的数值为 10,在 SQL 语句中,该值可表示为字符串“\x0a�±�£»Á¼°‘⁄ hexidecimal 设置为 on 的情况下执行下列语句:
select ‘line1 n x0aline2’ go output to file.txt hexidecimal on
您将得到一个文件,其中包含一行文本:
line10x0aline2
但是,如果在 hexidecimal 设置为 off 的情况下执行同一语句,您将得到下列文本:
line1 n x0aline2
最后,如果将 hexidecimal 设置为 asis,您将得到一个包含两行文本的文件:
line1 line2
由于已导出的嵌入式换行符没有转换成两位数的十六进制形式,也没有使用任何前缀,因此在使用 asis 时获得两行。
output 语句将通过当前查询检索到的信息复制到文件中。
可以使用可选的 format 子句指定输出格式。如果未指定 format 子句,则使用 Interactive SQL output_format 选项设置。
当前查询是 select 或 input 语句,生成的信息显示在“结果”窗格的“结果”选项卡上。如果当前查询不存在,output 语句将报告错误。
任何用户都可以运行此命令。
在 Interactive SQL 中,“结果”选项卡仅显示当前查询的结果。所有先前的查询结果都替换为当前查询结果。
input