GBase 8c 数据导入-错误处理

在GBase 8c数据库中,进行数据导入过程中出现的错误。可根据获取的错误信息,对照表1以处理数据导入错误。

表 1 处理数据导入错误

错误信息

原因

解决办法

missing data for column "r_reason_desc"

数据源文件中的列数比外表定义的列数少。

对于TEXT格式的数据源文件,由于转义字符(\)导致delimiter(分隔符)错位或者quote(引号字符) 错位造成的错误。

示例:目标表存在3列字段,导入的数据如下所示。由于存在转义字符“\”,分隔符“|”被转义为第二个字段的字段值, 导致第三个字段值缺失。

BE|Belgium\|1

  1. 由于列数少导致的报错,选择下列办法解决:
  1. 在数据源文件中,增加列r_reason_desc的字段值。
  2. 在创建外表时,将参数fill_missing_fields设置为on。即当导入过程中,若数据源文件中一行数据的最后一个字段缺失,则把最后一个字段的值设置为NULL,不报错。

2. 对由于转义字符导致的错误,需检查报错的行中是否含有转义字符(\)。若存在,建议在创建外表时,将参数“noescaping”(是否不对'\'和后面的字符进行转义)设置为true。

extra data after last expected column

数据源文件中的列数比外表定义的列数多。

  1. 在数据源文件中,删除多余的字段值。
  2. 在创建外表时,将参数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 结果集中删除重复的行,保证导入的每一行都是唯一 的。

gbase=# INSERT INTO reasons SELECT DISTINCT * FROM foreign_tpcds_reasons;

value too long

for type

character

varying(16)

字段值长度超过限制。

在数据源文件中,修改字段值长度。根据此错误信息,需将字段值长度限制为VARCHAR2(16)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值