文本文件格式(文本文件驱动程序)

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 由空格表示。