解决 .csv 文件上传到 pgsql 的字符报错问题

目录

背景

上传 .csv 文件进行数据导入到 pg 时,报错显示如下:

复制代码
ods.tbl_inp_fee_detail.csv数据上传失败
报错信息:org.postgresql.util.PSQLException: ERROR: invalid byte sequence for encoding "UTF8": 0x00 Where: COPY tbl_inp_fee_detail, line 3942264

问题

通过报错信息定位到 line 3942264,发现该 .csv 文件中存在 NUL 的字符,在 notepad++ 中显示如下图所示:

PS:notepad++ 记得先勾选上 功能栏选择 视图->显示符号->显示所有字符

解决办法

  1. 把打开 .csv 文件的默认格式改为 notepad++ 打开

  2. 最好采用本地的解压软件打开压缩包

  3. 由于压缩包的 .csv 文件是加密的,需要先解密,然后就可以打开报错相应的 .csv 文件,这时就直接打开的是 notepad++

  4. 在 notepad++ 中,点搜索栏的查找,在弹出窗口选替换,输入框输入 \x00 ,下面的替换为给它删到空,因为就是要把 NUL 字符替换为空,然后注意查找模式要选择扩展,最后点全部替换即可,记得 ctrl + s 保存,然后压缩包会提示你保存更改,点确认即可

  5. PS:解压 .csv 文件,notepad++ 打开 。csv 文件,以及替换字符的过程都可能需要挺长时间(看 .csv 文件的大小),不要乱点界面不然会卡死被强制退出

相关推荐
男孩李12 小时前
浅谈PostgreSQL 模式(SCHEMA)
数据库·postgresql
问道飞鱼2 天前
【数据库知识】PGSQL数据类型详细说明
数据库·sql·postgresql
java_logo2 天前
Supabase Postgres Docker 容器化部署指南
运维·docker·postgresql·容器·postgres部署教程·postgres部署文档·docker postgres
杨了个杨89822 天前
PostgreSQL 完全备份与还原
数据库·postgresql
大道之简2 天前
PostgreSQL pgvector向量数据库
数据库·postgresql
yfhmmm2 天前
PostgreSQL如何进行时间点恢复(PITR)
数据库·postgresql
程序员老赵2 天前
Supabase Postgres Docker 容器化部署指南
docker·postgresql
困死了11112 天前
PostgreSQL笔记
数据库·笔记·postgresql
前端之虎陈随易2 天前
PostgreSQL v18发布,新增AIO uuidv7 OAuth等功能
数据库·postgresql
小草儿7992 天前
postgresql相关
postgresql