准备输入数据 - Amazon Redshift

准备输入数据

如果您的输入数据与将要接收数据的表列不兼容,则 COPY 命令将失败。

请使用以下指南,以帮助确保您的输入数据有效:

  • 您的数据只能包含不超过四个字节长度的 UTF-8 字符。

  • 确认 CHAR 和 VARCHAR 字符串的长度不超过相应列的长度。VARCHAR 字符串以字节(而不是字符)为单位衡量,因此,如果一个字符串有四个中文字符,每个字符占用四个字节,则需要一个 VARCHAR(16) 列。

  • 多字节字符只能用于 VARCHAR 列。确认多字节字符的长度不超过四个字节。

  • 确认 CHAR 列的数据仅包含单字节字符。

  • 不要加入任何特殊字符或语法来表示记录中的最后一个字段。此字段可能为分隔符。

  • 如果数据包括 null 终止符,也称为 NUL (UTF-8 0000) 或二进制零 (0x000),则可以使用 COPY 命令中的 NULL AS 选项将这些字符作为 NULLS 加载到 CHAR 或 VARCHAR 列中:null as '\0'null as '\000'。如果您不使用 NULL AS,null 终止符将导致 COPY 失败。

  • 如果您的字符串包含特殊字符(如分隔符和嵌入换行符),请对 COPY 命令使用 ESCAPE 选项。

  • 确认所有单引号和双引号已正确匹配。

  • 确认浮点字符串采用了标准浮点字符格式(例如 12.123)或指数格式(例如 1.0E4)。

  • 确认所有时间戳和日期字符串遵循了 DATEFORMAT 和 TIMEFORMAT 字符串 的说明。默认时间戳格式为 YYYY-MM-DD hh:mm:ss,默认日期格式为 YYYY-MM-DD。

  • 有关各个日期类型的边界和限制的更多信息,请参阅数据类型。有关多字节字符错误的信息,请参阅多字节字符加载错误