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'); 
相关推荐
xcjbqd036 分钟前
Python API怎么加Token认证_JWT生成与验证拦截器实现
jvm·数据库·python
二月十六1 小时前
SQL Server 2022 新语法:IS [NOT] DISTINCT FROM 彻底解决 NULL 比较难题
数据库·sqlserver
~ rainbow~1 小时前
前端转型全栈(四)——常见的错误及解决方案
数据库·oracle·全栈
数厘1 小时前
2.1SQL 学习:先懂数据库概念再学 SQL
数据库·sql·学习
Cat_Rocky1 小时前
redis哨兵模式
数据库·redis
广师大-Wzx2 小时前
一篇文章看懂MySQL数据库(下)
java·开发语言·数据结构·数据库·windows·python·mysql
hef2882 小时前
golang如何使用range over func_golang range over func迭代器使用方法
jvm·数据库·python
qq_380619164 小时前
html如何查看windows
jvm·数据库·python
爱学习的小邓同学4 小时前
MySQL --- MySQL数据库基础
数据库·mysql
wgzrmlrm744 小时前
如何加固SQL环境部署_删除默认安装的示例数据库
jvm·数据库·python