首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >红移复制命令中嵌入的新行字符问题

问红移复制命令中嵌入的新行字符问题
EN

Stack Overflow用户
提问于 2017-03-06 17:22:45
回答 2查看 2.2K关注 0票数 0

在源S3文件的字段中有15个嵌入的换行符。Redshift中目标表中的字段大小为VARCHAR(5096)。源文件中的字段长度为5089字节。根据\命令的转义选项的要求,我们使用反斜杠\对15个换行符中的每个字符进行转义。我们对转义选项的期望是,在红移中加载目标之前,我们在每个换行符之前插入的反斜杠\将被忽略。但是,当我们将copy命令与转义选项一起使用时

err_code:1204 -字符串长度超过DDL长度。“

是否有一种方式不将添加的反斜杠\字符计算为红移中的目标列加载?

注意:当我们将文件中的上述源字段截断为4000字节并在换行符前面插入反斜杠\时,带转义选项的copy命令成功地在Redshift中加载了该字段。另外,反斜杠\字符没有像预期的那样加载在Redshift中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-13 16:36:51

我们对上述问题的理解是不正确的。我们插入的反斜杠"\“不会导致错误"err_code:1204 -字符串长度超过DDL长度”。使用copy命令的“转义”选项实际上没有将插入的反斜杠字符计算到目标限制,并且也正确地将它们从加载的值中删除。

我们面临的实际问题是,我们试图加载的一些字符是多字节UTF8字符。由于我们错误地假设它们的长度为1字节,因此目标字段的大小被证明是不够的。我们将目标字段的长度从varchar(5096)增加到varchar(7096),然后成功地加载了所有数据。

票数 0
EN

Stack Overflow用户

发布于 2017-03-07 00:36:34

冷扩展VARCHAR长度以允许更多字符。

或者,您可以使用TRUNCATECOLUMNS选项尽可能多地加载,而不会产生错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42631796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档