命令文件必须定义数据字段,并使用字符位置来定义每个字段的长度。
以下示例中的 FILE 语句定义了 cust_loc_data 表数据行中的六个数据字段。
FILE cust_loc_data (city 1-15, state 16-17, area_cd 23-25 NULL = 'xxx', phone 23-34 NULL = 'xxx-xxx-xxxx', zip 18-22, state_area 16-17 : 23-25); INSERT INTO cust_address (col1, col3, col4) VALUES (city, state, zip);
图: 样本数据文件
列 | 来自数据行 1 的值 | 来自数据行 2 的值 |
---|---|---|
city | Sunnyvale++++++ | Tempe++++++++++ |
state | CA | AZ |
area_cd | 408 | null |
phone | 408-789-8075 | null |
zip | 94086 | 85253 |
state_area | CA408 | AZxxx |
为 phone 和 area_cd 字段定义的空字符串在这些列中生成空值,但不影响存储在 state_area 列中的值。
INSERT INTO cust_address (col1, col3, col4) VALUES (city, state, zip);
列 | 来自数据行 1 的值 | 来自数据行 2 的值 |
---|---|---|
col1 | Sunnyvale++++++ | Tempe++++++++++ |
col2 | null | null |
col3 | CA | AZ |
col4 | 94086 | 85253 |
由于没有命名 cust_address 中的第二列 (col2),所以新的数据行将包含空值(假定该列允许空值)。
INSERT INTO cust_sort VALUES (area_cd, zip);
列 | 来自数据行 1 的值 | 来自数据行 2 的值 |
---|---|---|
col1 | 408 | null |
col2 | 94086 | 85253 |
由于没有提供列列表,dbload 从系统目录读取 cust_sort 中所有列的名称。(您不能将数据插入临时表,因为临时表不会进入系统目录。)前面的 FILE 语句的字段名称指定了要装入每列中的值。您无需对每个 INSERT 语句使用一个 FILE 语句。