文档首页> 数据仓库服务 GaussDB(DWS)> 故障排除> 数据导入/导出> 使用copy from导入GaussDB(DWS)时报错: invalid byte sequence for encoding "UTF8": 0x00
更新时间:2024-02-27 GMT+08:00
分享

使用copy from导入GaussDB(DWS)时报错: invalid byte sequence for encoding "UTF8": 0x00

问题现象

使用copy from导入GaussDB(DWS)时,报错: invalid byte sequence for encoding "UTF8": 0x00错误

原因分析

数据文件是从Oracle导入的,文件编码为utf-8。该报错还会提示行数,由于文件特别大,vim命令打不开文件,于是用sed命令把报错行数提出来,再用vim命令打开,发现并没有什么异常。用split命令按行数切割后,部分文件也可以导入。

经分析GaussDB(DWS)的varchar型的字段或变量不允许含有'\0'(也即数值0x00、UTF编码'\u0000')的字符串 ,需在导入前去掉字符串中的'\0'。

处理方法

用sed命令替换0x00。

1
sed -i 's/\x00//g;' file

参数说明:

  • -i表示在原文件直接替换。
  • s/表示替换。
  • /g表示全局替换。
分享:

    相关文档

    相关产品