
# 处理错误表
#### 操作场景
当数据导入发生错误时，请根据本文指引信息进行处理。
#### 查询错误信息
数据导入过程中发生的错误，一般分为数据格式错误和非数据格式错误。
- 数据格式错误 在创建外表时，通过设置参数"LOG INTO error_table_name"，将数据导入过程中出现的数据格式错误信息写入指定的错误信息表error_table_name中。您可以通过以下SQL，查询详细错误信息。
  ```
  SELECT * FROM error_table_name;
  ```
  错误信息表结构如[表1]所示。
   表1错误信息表 
  | 列名称       | 类型                       | 描述                                                                                                                                              |
  |:---|:---|:---|
  | nodeid    | integer                  | 报错节点编号。                                                                                                                                         |
  | begintime | timestamp with time zone | 出现数据格式错误的时间。                                                                                                                                    |
  | filename  | character varying        | 出现数据格式错误的数据源文件名。 当GDS导入时，同时会包括对应GDS服务端的IP地址端口信息。 |
  | rownum    | bigint                   | 在数据源文件中，出现数据格式错误的行号。                                                                                                                            |
  | rawrecord | text                     | 在数据源文件中，出现数据格式错误的原始记录。                                                                                                                          |
  | detail    | text                     | 详细错误信息。                                                                                                                                         |
     
  

- 非数据格式错误 对于非数据格式错误，一旦发生将导致整个数据导入失败。您可以根据执行数据导入过程中，界面提示的错误信息，帮助定位问题，处理错误表。
  
#### 处理数据导入错误
根据获取的错误信息，请对照下表，处理数据导入错误。
表2处理数据导入错误 
| 错误信息                                                         | 原因                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 解决办法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| missing data for column "r_reason_desc"                      | 1. 数据源文件中的列数比外表定义的列数少。  2. 对于TEXT格式的数据源文件，由于转义字符（\\）导致delimiter（分隔符）错位或者quote（引号字符）错位造成的错误。 **示例：**目标表存在3列字段，导入的数据如下所示。由于存在转义字符"\\"，分隔符"\|"被转义为第二个字段的字段值，导致第三个字段值缺失。 ``` BE|Belgium\|1 ```    | 1. 由于列数少导致的报错，选择下列办法解决： - 在数据源文件中，增加列"r_reason_desc"的字段值。  - 在创建外表时，将参数"fill_missing_fields"设置为"on"。即在导入过程中，若数据源文件中一行数据的最后一个字段缺失，则把最后一个字段的值设置为NULL，不报错。    2. 对由于转义字符导致的错误，需检查报错的行中是否含有转义字符（\\）。若存在，建议在创建外表时，将参数"noescaping"（是否不对'\\'和后面的字符进行转义）设置为true。   |
| extra data after last expected column                        | 数据源文件中的列数比外表定义的列数多。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | - 在数据源文件中，删除多余的字段值。  - 在创建外表时，将参数"ignore_extra_data"设置为"on"。即在导入过程中，若数据源文件比外表定义的列数多，则忽略行尾多出来的列。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| invalid input syntax for type numeric: "a"                   | 数据类型错误。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | 在数据源文件中，修改输入字段的数据类型。根据此错误信息，请将输入的数据类型修改为numeric。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| null value in column "staff_id" violates not-null constraint | 非空约束。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | 在数据源文件中，增加非空字段信息。根据此错误信息，请增加"staff_id"列的值。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| duplicate key value violates unique constraint "reg_id_pk"   | 唯一约束。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | - 删除数据源文件中重复的行。  - 通过设置关键字"DISTINCT"，从SELECT结果集中删除重复的行，保证导入的每一行都是唯一的。 ``` INSERT INTO reasons SELECT DISTINCT * FROM foreign_tpcds_reasons; ```                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| value too long for type character varying(16)                | 字段值长度超过限制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 在数据源文件中，修改字段值长度。根据此错误信息，字段值长度限制为VARCHAR2(16)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
