【发布时间】:2018-02-21 05:32:30
【问题描述】:
我有一个 CSV 文件,我要在其中导入多个字段...其中一个字段是日期类型字段,格式为“20120401”。在 CSV 文件中,所有行的此字段的长度为 8。我在 Postgres 中创建了一个表,并指定了接收此数据的字段作为 DATE 类型列。当我导入 CSV 文件时,它引发了“无效输入错误”。为了解决这个问题,我将表的类型更改为 VARCHAR,认为以后可以运行 ALTER TABLE 来更改数据类型。导入成功,但 ALTER TABLE 不成功。我注意到第一行的日期长度为 9,而其余所有行的标准长度为 8。不知何故,在导入过程中,它获得了另一个角色,对于我的生活,我无法确定它来自哪里。我已经完成了一堆 TRIM 操作(TRIM、BTRIM),但仍然产生 9 个字符。有什么建议么?如果我删除这一行,将其更改为 DATE 类型的 ALTER TABLE 语句将起作用。所以真的只有这一行。
示例如下:
20150401 My Gll ES 1A3AE039E352 GCE 0.2461158
20150401 My Gll ES 1F63E45849F1 GCE 0.8670354
【问题讨论】:
-
您能否将 CSV 文件中的前 2 或 3 行直接包含在您的问题中,格式为代码(每行有四个缩进空格)?可能源文件中有一些特殊字符。
-
我实际上尝试以 CSV 格式重新保存文件,这似乎有效。 Mac 上的原始文件是“CSV UTF-8(逗号分隔)(.csv)”。我重新保存为“逗号分隔值 (.csv)”,这似乎保存了一个稍微缩小的文件,并且还删除了导入问题。
标签: postgresql csv psql