华为云云数据库GaussDB处理错误表_云淘科技
操作场景
当数据导入发生错误时,请根据本文指引信息进行处理。
查询错误信息
数据导入过程中发生的错误,一般分为数据格式错误和非数据格式错误。
数据格式错误
在创建外表时,通过设置参数“LOG INTO error_table_name”,将数据导入过程中出现的数据格式错误信息写入指定的错误信息表error_table_name中。您可以通过以下SQL,查询详细错误信息。
1 |
openGauss=# SELECT * FROM error_table_name; |
错误信息表结构如表1所示。
列名称 |
类型 |
描述 |
---|---|---|
nodeid |
integer |
报错节点编号。 |
begintime |
timestamp with time zone |
出现数据格式错误的时间。 |
filename |
character varying |
出现数据格式错误的数据源文件名。 |
rownum |
numeric |
在数据源文件中,出现数据格式错误的行号。 |
rawrecord |
text |
在数据源文件中,出现数据格式错误的原始记录。 |
detail |
text |
详细错误信息。 |
非数据格式错误
对于非数据格式错误,一旦发生将导致整个数据导入失败。您可以根据执行数据导入过程中,界面提示的错误信息,帮助定位问题,处理错误表。
处理数据导入错误
根据获取的错误信息,请对照下表,处理数据导入错误。
错误信息 |
原因 |
解决办法 |
||
---|---|---|---|---|
missing data for column “r_reason_desc” |
数据源文件中的列数比外表定义的列数少。 示例:目标表存在3列字段,导入的数据如下所示。由于存在转义字符“\”,分隔符“|”被转义为第二个字段的字段值,导致第三个字段值缺失。 BE|Belgium\|1 |
由于列数少导致的报错,选择下列办法解决: 在数据源文件中,增加列“r_reason_desc”的字段值。 对由于转义字符导致的错误,需检查报错的行中是否含有转义字符(\)。若存在,建议在创建外表时,将参数“noescaping”(是否不对’\’和后面的字符进行转义)设置为true。 |
||
extra data after last expected column |
数据源文件中的列数比外表定义的列数多。 |
在数据源文件中,删除多余的字段值。 |
||
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” |
唯一约束。 |
删除数据源文件中重复的行。
|
||
value too long for type character varying(16) |
字段值长度超过限制。 |
在数据源文件中,修改字段值长度。根据此错误信息,字段值长度限制为VARCHAR2(16)。 |
父主题: 通过外表并行导入
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家