准备输入数据
如果您的输入数据与将要接收数据的表列不兼容,则 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。