IMPORT DELIMITED 命令
概念信息
通过定义并导入一个分隔文本文件来创建 Analytics 表。
语法
IMPORT DELIMITED TO 表 导入文件名 FROM 源文件名 <SERVER 配置文件名> 源字符编码 SEPARATOR {字符|TAB|SPACE} QUALIFIER {字符|NONE} <CONSECUTIVE> STARTLINE 行号 <KEEPTITLE> <CRCLEAR> <LFCLEAR> <REPLACENULL> <ALLCHAR> {ALLFIELDS|[域语法] <...n> <IGNORE 域编号> <...n>}
域语法 ::=
FIELD 名称 类型 AT 起始位置 DEC 值 WID 字节数 PIC 格式 AS 显示名称
参数
名称 | 描述 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
TO 表 |
数据要导入到的 Analytics 表的名称。 说明 表名称被限制为不超过 64 个字母数字字符。该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。该名称不能以数字开头。 |
|||||||||||||||
导入文件名 |
要创建的 Analytics 数据文件的名称。 将导入文件名指定为具有 .FIL 文件扩展名的带引号的字符串。例如,"发票.FIL"。 默认情况下,数据文件 (.fil) 被保存到包含 Analytics 项目的文件夹。 请使用绝对或相对文件路径将该数据文件保存到另外的现有文件夹:
|
|||||||||||||||
FROM 源文件名 |
源数据文件的名称。源文件名称必须是带引号的字符串。 如果源数据文件未与 Analytics 项目位于同一目录中,则必须使用绝对路径或相对路径来指定文件位置:
|
|||||||||||||||
SERVER 配置文件 可选 |
您要导入的数据所在的 AX 服务器的服务器配置文件名称。 | |||||||||||||||
源字符编码 |
源数据的字符集和编码。 根据您所使用的 Analytics 的版本以及源数据的编码,指定适当的代码:
|
|||||||||||||||
SEPARATOR 字符 | TAB | SPACE |
在源数据中的域之间使用的分隔符(定界符)。您必须将该字符指定为带引号的字符串。 您可以通过在双引号之间键入相应的字符或者通过使用关键字来指定制表符或空格分隔符。
|
|||||||||||||||
QUALIFIER 字符 | NONE |
源数据中用来环绕和标识域值的文本限定符。您必须将该字符指定为带引号的字符串。 要将双引号字符指定为文本限定符,请将该字符放在单引号中,例如:QUALIFIER '"'。 您可以使用下列任一方法指定没有文本限定符:
|
|||||||||||||||
CONSECUTIVE 可选 |
将连续文本限定符作为单个限定符处理。 |
|||||||||||||||
STARTLINE 行号 |
开始读取文件的行号。 例如,如果文件的前三行包含您不需要的标题信息,请指定 STARTLINE 4 从第四行开始读取数据。 |
|||||||||||||||
KEEPTITLE 可选 |
|
|||||||||||||||
CRCLEAR 可选 |
将出现在文本限定符之间的任何 CR 符(回车符)替换为空格符。要使用 CRCLEAR,必须指定带有一个字符值的 QUALIFIER。 如果您同时使用 CRCLEAR 和 LFCLEAR,则 CRCLEAR 必须居前。 |
|||||||||||||||
LFCLEAR 可选 |
将出现在文本限定符之间的任何 LF 符(换行符)替换为空格符。要使用 LFCLEAR,必须指定带有一个字符值的 QUALIFIER。 如果您同时使用 CRCLEAR 和 LFCLEAR,则 CRCLEAR 必须居前。 |
|||||||||||||||
REPLACENULL 可选 |
将分隔文件中出现的任何 NUL 字符替换为空格字符。任何被替换的 NUL 字符的数量被记录在日志中。 |
|||||||||||||||
ALLCHAR 可选 |
“字符”数据类型被自动分配给所有被导入的域。 提示 将字符数据类型分配给所有被导入的域可简化导入分隔文本文件的流程。 一旦将数据导入 Analytics,您就可以向域分配不同的数据类型(如数值或日期时间),并且指定格式详细信息。 如果您所导入的表中的标识符域被 Analytics 自动分配“数值”数据类型,而实际上它们应该使用“字符”数据类型,则 ALLCHAR 很有用。 |
|||||||||||||||
ALLFIELDS |
源数据文件中的所有域都被导入。 有关当您使用 ALLFIELDS 时 Analytics 如何分配数据类型的信息,请参见备注。 说明 如果您指定 ALLFIELDS,请不要指定任何单个 FIELD 语法或 IGNORE。 |
|||||||||||||||
FIELD 名称 类型 |
要从源数据文件导入的单个域,包括该域的名称和数据类型。如果要将某个域排除在导入范围之外,请不要指定它。 有关类型的信息,请参见域数据类型标识符。 说明 如果您指定 ALLCHAR,则 类型 被忽略。 |
|||||||||||||||
AT 起始位置 |
域在 Analytics 数据文件中的起始字节位置。 说明
在 Unicode Analytics 中,通常您应该指定奇数起始字节位置。指定偶数起始位置可能导致字符显示不正确。 |
|||||||||||||||
DEC 值 |
数值域的小数位数。 说明 如果您指定 ALLCHAR,则 DEC 被忽略。 |
|||||||||||||||
WID 字节数 |
Analytics 表布局中域的长度(以字节为单位)。 说明
在 Unicode Analytics 中,请仅指定偶数个字节。指定奇数个字节可能导致字符显示不正确。 |
|||||||||||||||
PIC 格式 |
说明 仅适用于数值域或日期时间域。
必须将格式放在引号中。 说明 如果您指定 ALLCHAR,则 PIC 被忽略。 |
|||||||||||||||
AS 显示名称 |
新 Analytics 表的视图中的域的显示名称(备选列标题)。 请将显示名称指定为带引号的字符串。如果您希望列标题包含换行符,请在单词之间使用分号 (;)。 当您定义 FIELD 时,必须使用 AS。要使显示名称与域名称相同,请使用以下语法输入一个空白显示名称值:AS ""。请确保在两个双引号之间没有空格。 |
|||||||||||||||
IGNORE 域编号 <...n> 可选 |
从表布局中排除该域。 域编号指定被排除的域在源数据文件中的位置。例如,IGNORE 5 从 Analytics 表布局中排除源数据文件中的第五个域。 说明 该域中的数据仍然会被导入,但它是未定义的,并且不会出现在新的 Analytics 表中。如有必要,可在以后定义数据并且将其添加到该表中。 要将某个域完全从导入范围中排除,请在您分别指定域时不要指定它。 |
示例
导入所有域
您将一个逗号分隔文件中的所有域导入到一个名为 Employees 的 Analytics 表。该文件使用使用双引号作为文本限定符。数据类型被基于备注中介绍的规则集自动分配。
IMPORT DELIMITED TO 员工 "员工.fil" FROM "员工.csv" 0 SEPARATOR "," QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE ALLFIELDS
导入所有域,并且自动分配“字符”数据类型
您将一个逗号分隔文件中的所有域导入到一个名为 Employees 的 Analytics 表。该文件使用使用双引号作为文本限定符。“字符”数据类型被自动分配给所有被导入的域:
IMPORT DELIMITED TO 员工 "员工.fil" FROM "员工.csv" 0 SEPARATOR "," QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE ALLCHAR ALLFIELDS
导入指定的域,并且自动分配“字符”数据类型
您将一个制表符分隔文件中的指定域导入到一个名为 Employees 的 Analytics 表。该文件使用使用双引号作为文本限定符。“字符”数据类型被自动分配给所有被导入的域:
IMPORT DELIMITED TO 员工 "员工.fil" FROM "员工.csv" 0 SEPARATOR TAB QUALIFIER '"' CONSECUTIVE STARTLINE 1 KEEPTITLE ALLCHAR FIELD "名字" C AT 1 DEC 0 WID 25 PIC "" AS "名字" FIELD "姓氏" C AT 26 DEC 0 WID 25 PIC "" AS "姓氏" FIELD "卡号" C AT 51 DEC 0 WID 16 PIC "" AS "卡号" FIELD "员工编号" C AT 67 DEC 0 WID 6 PIC "" AS "员工编号" FIELD "聘用日期" C AT 73 DEC 0 WID 10 PIC "" AS "聘用日期" FIELD "工资" C AT 83 DEC 0 WID 5 PIC "" AS "" FIELD "2016年奖金" C AT 88 DEC 0 WID 10 PIC "" AS "2016年奖金"
导入指定的域,分别分配数据类型
您将一个分号分隔文件中的指定域导入到一个名为 Employees 的 Analytics 表。该文件不使用文本限定符。您指定所导入的每个域的数据类型:
IMPORT DELIMITED TO 员工 "员工.fil" FROM "员工.csv" 0 SEPARATOR ";" QUALIFIER "" CONSECUTIVE STARTLINE 1 KEEPTITLE FIELD "名字" C AT 1 DEC 0 WID 25 PIC "" AS "名字" FIELD "姓氏" C AT 26 DEC 0 WID 25 PIC "" AS "姓氏" FIELD "卡号" C AT 51 DEC 0 WID 16 PIC "" AS "卡号" FIELD "员工编号" C AT 67 DEC 0 WID 6 PIC "" AS "员工编号" FIELD "聘用日期" D AT 73 DEC 0 WID 10 PIC "MM/DD/YYYY" AS "聘用日期" FIELD "工资" N AT 83 DEC 0 WID 5 PIC "" AS "" FIELD "2016年奖金" N AT 88 DEC 2 WID 10 PIC "" AS "2016年奖金"
备注
有关此命令工作方式的详细信息,请参见导入分隔文本文件。
Analytics 在您使用 ALLFIELDS 时如何分配数据类型
当您使用 ALLFIELDS 参数而不是分别定义域时,Analytics 会检查分隔文件开头的一个记录子集并且基于下面介绍的规则集向域分配数据类型。
一旦将数据导入 Analytics,您就可以根据需要向域分配不同的数据类型(如数值或日期时间),并且指定格式详细信息。
分隔文件中的域值的描述 | 示例 | 所分配的数据类型 |
---|---|---|
由文本限定符围住的值 | "ABC Suppliers" "6,990.75" |
字符 |
值包括位于域中任何位置的非数值字符,但被用作数值分隔符的逗号和句点以及负号 (-) 除外。 | $995 (995) |
字符 |
值仅包括数字、数值分隔符或负号 | 6,990.75 -6,990.75 995 |
数值 |
一个或多个空白值出现在域中 | 字符 | |
包含分隔符或字母月份的日期时间值 |
2016/12/31 2016 年 12 月 31 日 |
字符 |
全为数字的日期时间值 | 20161231 | 数值 |
域数据类型标识符
下表列出了您在为 FIELD 指定类型时必须使用的字母。每个字母都对应于一个 Analytics 数据类型。
例如,如果您要定义一个需要字符数据类型的“姓氏”域,那么您可以指定 "C": FIELD "Last_Name" C。
有关详细信息,请参见Analytics 中的数据类型。
说明
当使用数据定义向导 定义包含 EBCDIC 字段、Unicode 字段或 ASCII 字段的表时,这些字段会被自动分配字母 “C”(对于 CHARACTER 类型)。
当手动输入 IMPORT 语句或编辑现有 IMPORT 语句时,您可以用更加具体的字母 “E” 或 “U” 替换 EBCDIC 字段和 Unicode 字段。
字母 |
Analytics 数据类型 |
---|---|
A |
ACL |
B |
BINARY |
C |
CHARACTER |
D |
DATETIME |
E |
EBCDIC |
F |
FLOAT |
G |
ACCPAC |
I |
IBMFLOAT |
K |
UNSIGNED |
L |
LOGICAL |
N |
|
P |
PACKED |
Q |
BASIC |
R |
MICRO |
S |
CUSTOM |
T |
PCASCII |
U |
UNICODE |
V |
VAXFLOAT |
X |
NUMERIC |
Y |
UNISYS |
Z |
ZONED |