我正在尝试使用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)文本)
感谢您的帮助!
答案 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