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

问题描述 投票:0回答:1

我正在尝试使用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)文本)

任何帮助表示赞赏!

sql greenplum
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.