copy导入ERROR:value too long for type……

错误描述

客户的gaussdb数据库,由于权限有限。只有tdss客户端工具和gsql工具。现在是需要将一个较大的表,移到其他database的schema下。

使用以下方法,对于较小的表都成功了

复制代码
#导入t1
copy t1 from '/data/input/t1.txt' delimiter '^';
#导出t1
copy t1 to '/data/input/t1_output.txt' delimiter '^'; 

然后在处理一张2000w行的大表时。导出成功,导入时报错ERROR:value too long for type......

分析尝试

1、尝试修改了较短的列,然后发现有多个列要改长度。最终确定是列错位,列顺序偏移了一位

2、尝试换过其他的分隔符(空格),仍然报错,且报错行数一致

3、尝试切分文件,报错行会发生变化,但是原因一样,出现错位

4、删除报错的行,发现报错行减少1,应该不是数据的问题

解决办法

使用binary的格式导出导入解决(more大概看了下binary的格式,发现其组织形式是列的)

复制代码
copy t1 to '/data/input/t1_output.bin'  with(format 'BINARY'); 

copy t1 from '/data/input/t1_output.bin'  with(format 'BINARY'); 
相关推荐
SeaTunnel2 小时前
Redis 数据迁移不用写脚本:SeaTunnel 支持 String、Hash、Set、ZSet 四种数据类型
数据库·redis·哈希算法·数据迁移·seatunnel·数据同步
晊晌_h2 小时前
嵌入式从0到精通——SQLite3 数据库
数据库·sqlite·sqlite3
海浪仙人掌2 小时前
账龄分析怎么操作?账龄分析实施流程有哪些步骤?
数据库
楚枫默寒2 小时前
Oracle AWR 自动巡检报告
数据库·oracle
吉甫作诵2 小时前
Oracle 19c 常用运维命令大全
运维·数据库·oracle
宗介波妞2 小时前
主站与场站多业务链路通断测试实战指南(电力自动化联调)
网络·数据库
邪修king3 小时前
MySQL数据库(二):操作详解:从创建、查看到备份恢复
数据库·mysql
tryxr3 小时前
Chat2Excel 项目用户服务开发
java·数据库·java项目·用户服务开发
kiss strong3 小时前
redis服务器登录(内网环境,无法使用客户端)
数据库·redis·缓存
志栋智能3 小时前
运维超自动化中的配置管理实践
运维·网络·数据库·自动化