故障现象
使用copy命令在进行数据导入时,出现报错:ERROR: missing data for column “c2”

故障原因
在测试库上模拟重建故障环境
drop table if exists saferpt.crb_g02_002;
CREATE TABLE saferpt.crb_g02_002 (
c1 varchar ,
c2 varchar ,
c3 varchar ,
c4 varchar ,
c5 varchar ,
c6 varchar,
c7 varchar,
c8 varchar ,
c9 varchar,
c10 varchar ,
c11 varchar ,
c12 date,
c13 int,
c14 int,
c15 int
) ;

建立测试dat文件
vi /tmp/test.dat

模拟故障
copy crb_g02_002 from '/tmp/test.dat' encoding 'GBK' delimiter '/';

故障处理
感觉故障提示,有两个推断:
- 推断一:表的列数和dat文件中的列数对不上,再仔细对比了表和dat文件后,发现列数一致。
- 推断二:dat文件问题
根据推断二进行排查,偶然发现dat文本最底下的部分有一个空行,如下图:

将该空行删除掉,在运行copy命令后,发现故障消失。
copy crb_g02_002 from '/tmp/test.dat' encoding 'GBK' delimiter '/'; COPY 74

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




