编码“ UTF8”的字节序列无效

时间:2019-04-15 14:59:28

标签: sql greenplum

我正在尝试使用gpload功能将3GB(2400万行)的csv文件加载到greenplum数据库,但是我一直收到以下错误

错误-

 invalid byte sequence for encoding "UTF8": 0x8d

我有tried solution provided by Mike,但对我来说,我的client_encoding和文件编码已经相同。两者都是UNICODE。

数据库-

show client_encoding;
"UNICODE"

文件-

file my_file_name.csv
my_file_name.csv: UTF-8 Unicode (with BOM) text

我也浏览了Greenplum的documentation,它说外部文件和数据库的编码应该匹配。就我而言,它是匹配的,但以某种方式失败了。

我也上传了类似的较小文件(相同的UTF-8 Unicode(带有BOM)文本)

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

发布在另一个线程中-使用iconv命令将这些字符从文件中删除。 Greenplum使用字符集实例化,默认情况下为UTF-8,并且要求所有字符都属于指定的字符集。您还可以选择使用EXTERNAL TABLE的LOG ERRORS子句记录这些错误。这样可以捕获不良数据,并让您继续设置在创建过程中指定的LIMIT。

iconv -f utf-8 -t utf-8 -c file.txt

将清除您的UTF-8文件,并跳过所有无效字符。

-f is the source format
-t the target format
-c skips any invalid sequence