我正在尝试使用COPY命令将数据上传到RedShift。
在这一行: 4072462 | 10013868 |默认| 2015-10-14 21:23:18.0 | 0 |'A = 0
我收到此错误: 定界值缺少最终报价
这是COPY命令: 复制测试 来自's3://test/test.gz' 凭证'aws_access_key_id = xxx; aws_secret_access_key = xxx'removequotes escape gzip
答案 0 :(得分:4)
首先,我希望您知道为什么会出现上述错误:您在其中一个列值中有一个引号。在使用removequotes
选项时,Redshift documentation明确表示:
如果字符串具有开头的单引号或双引号但没有相应的结束标记,则COPY命令无法加载该行并返回错误。
有一件事是肯定的:removequotes
肯定不是你想要的。
其次,你有什么选择?
escape
选项。根据{{3}},指定此参数时,输入数据中的反斜杠字符(\)将被视为转义字符。
所以S3中的输入行应该改为:
4072462 | 10013868 |默认| 2015-10-14 21:23:18.0 | 0 | \'A = 0
CSV DELIMITER '|'
是否适合您。查看文档documentation。