文本文件格式(文本文件驱动程序)
ODBC 文本驱动程序支持带分隔符和固定宽度的文本文件。 文本文件由一个可选的标题行和零个或多个文本行组成。
尽管标题行使用的格式与文本文件中的其他行相同,但 ODBC 文本驱动程序会将标题行条目解释为列名,而不是数据。
带分隔符的文本行包含一个或多个用分隔符分隔的数据值:逗号、制表符或自定义分隔符。 必须在整个文件中使用相同的分隔符。 空数据值在一行中用两个分隔符表示,两者之间没有数据。 带分隔符的文本行中的字符串可以用双引号 (“”) 引起来。 分隔值之前或之后不能出现空白。
固定宽度文本行中每个数据条目的宽度在架构中指定。 Null 数据值用空白表示。
表最多只能包含 255 个字段。 字段名称限制为 64 个字符,字段宽度限制为 32,766 个字符。 记录限制为 65,000 个字节。
只能为单个用户打开文本文件。 不支持多个用户。
以下语法为程序员编写,定义了可由 ODBC 文本驱动程序读取的文本文件的格式:
格式 | 表示形式 |
---|---|
非斜体 | 必须按如下所示输入的字符 |
斜 体 字 | 语法中其他位置定义的参数 |
brackets ([]) | 可选项 |
大括号 ({}) | 互斥选项的列表 |
垂直条形 (|) | 将互斥选项分开 |
省略号 (...) | 可重复一次或多次的项目 |
文本文件的格式为:
text-file ::=
[delimited-header-line] [delimited-text-line]... end-of-file |
[fixed-width-header-line] [fixed-width-text-line]... end-of-file
delimited-header-line ::= delimited-text-line
delimited-text-line ::=
blank-line |
delimited-data [delimiter delimited-data]... end-of-line
fixed-width-header-line ::= fixed-width-text-line
fixed-width-text-line ::=
blank-line |
fixed-width-data [fixed-width-data]... end-of-line
end-of-file ::= <EOF>
blank-line ::= end-of-line
delimited-data ::= delimited-string | number | date | delimited-null
fixed-width-data ::= fixed-width-string | number | date | fixed-width-null
注意
固定宽度文本文件中每列的宽度在 Schema.ini 文件中指定。
end-of-line ::= <CR> | <LF> | <CR><LF>
delimited-string ::= unquoted-string | quoted-stringunquoted-string ::= [character | digit] [character | digit | quote-character]...
quoted-string ::=
quote-character
[character | digit | delimiter | end-of-line | embedded-quoted-string]...
quote-characterembedded-quoted-string ::= quote-characterquote-character
[character | digit | delimiter | end-of-line]
quote-characterquote-characterfixed-width-string ::= [character | digit | delimiter | quote-character] ...
character ::= any character except:
delimiterdigitend-of-fileend-of-linequote-characterdigit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
delimiter ::= , | <TAB> |
custom-delimitercustom-delimiter ::= any character except:
end-of-fileend-of-linequote-character
注意
自定义分隔文本文件中的分隔符在 Schema.ini 文件中指定。
quote-character ::= "
number ::= exact-number | approximate-number
exact-number ::= [+ | -] {unsigned-integer[.unsigned-integer] |
unsigned-integer. |
.unsigned-integer}
approximate-number ::= exact-number{e | E}[+ | -]unsigned-integer
unsigned-integer ::= {digit}...
date ::=
mm date-separator dd date-separator yy |
mmm date-separator dd date-separator yy |
dd date-separator mmm date-separator yy |
yyyy date-separator mm date-separator dd |
yyyy date-separator mmm date-separator dd
mm ::= digit [digit]
dd ::= digit [digit]
yy ::= digit digit
yyyy ::= digit digit digit digit
mmm ::= Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
date-separator ::= - | / | .
delimited-null ::=
注意
对于带分隔符的文件,NULL 由两个分隔符之间的任何数据表示。
fixed-width-null ::= <SPACE>...
注意
对于固定宽度的文件,NULL 由空格表示。