2017-04-08 117 views
0

尝试将数据加载到Redshift时出现加载错误。我的错误是:为什么ACCEPTINVCHARS不在这里工作?

Missing newline: Unexpected character 0x24 found at location nnn 

我使用这个命令,其中包括ACCEPTINVCHARS选项,并在讨论的列被定义为VARCHAR(80)

copy <dest_tbl> from <S3 source> 
CREDENTIALS <my_credentials> IGNOREHEADER 1 ENCODING UTF8 
IGNOREBLANKLINES NULL AS '\\N' 
EMPTYASNULL BLANKSASNULL gzip ACCEPTINVCHARS timeformat 'auto' 
dateformat 'auto' MAXERROR 1 compupdate on; 

的错误,像这样在vi

Unexpected chars - vi

八进制转储看起来是这样的: Unexpected chars - octal

我不明白为什么这是失败给予ACCEPTINVCHARS documentation at Amazon任何人都可以提出解决方案或解决方法吗?换一种说法,我需要做些什么才能确保Redshift在此字段中接受此字符串?

+0

文件格式是什么?您的COPY语句没有指定格式,所以它默认使用带有管道(|)分隔符的UTF-8。 –

+0

这并不是默认的参数,它们是明确的。 UTF-8在OP中,但在试图掩盖我的凭据时,我错误地删除了DELIMITER'|'参数在COPY语句中。 –

回答

3

八进制转储显示它们是空值(NUL),它们被红移copy命令视为行终止符。

使用NULL AS'\ 0'替代默认值'\ N',

+0

就是这样!谢谢。 –