sql - 使用 psql 复制 csv 时包括 NULL 值

标签 sql postgresql csv psql

我有一个包含各种数据格式的 csv,我正试图将其复制到 postgres 中。我每次都会遇到此错误,因为在第 97789 行我有几列包含空单元格。

我不想删除这一行(以及其他可能包含 NULL 值的行),而是想找到一个将它们包含在数据库中的解决方案。 ma effective date 列应该采用整数值。但是当我尝试使用以下代码时 - 它不起作用,可能是因为我试图将 NULL 作为字符串输入:

oakland=# \copy test_import FROM '/Users/Downloads/IE670_test.csv' DELIMITER ','  NULL AS 'NULL' csv
ERROR:  invalid input syntax for integer: "        "
CONTEXT:  COPY test_import, line 97789, column ma effective date (ccyymmdd): "        "

但是,切换到 NULL as NULL 也不起作用,并且会在 psql 中产生语法错误。无论列中的数据类型如何,是否有有效的解决方案来包含 NULL 值?

这是原始格式的违规行:

048A706200600,48A-7062-6     ,17,3,5815,PRESLEY WAY                                       ,          ,OAKLAND                       ,94618,    ," $102,150.00 "," $38,259.00 ", $-   , $-   , $-   , $-   , $-   ," $7,000.00 ", $-   ," $133,409.00 ",2015,139807,20150527,20150901, ,                    ,                                                  ,                                                            ,          ,                              ,     ,    ,  , ,        , ,1100,Single family residential homes used as such

最佳答案

如果空值单元格确实为空,则省略 NULL AS 'NULL' 子句。否则(似乎是这种情况),将 'NULL' string 替换为包含这些单元格中任何内容的字符串。您可能需要确保 csv 中的空值是一致的。

test.csv(一个空格为空):

1, ,3

SQL

create table csv (one int, two int, three int);

一个空格为空:

\copy csv from '~/test.csv' delimiter ',' null as ' ' csv;
COPY 1

两个空格为空:

\copy csv from '~/test.csv' delimiter ',' null as '  ' csv;
ERROR:  invalid input syntax for integer: " "
CONTEXT:  COPY csv, line 1, column two: " "

关于sql - 使用 psql 复制 csv 时包括 NULL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41295519/

相关文章:

mysql - 使用带有 sum 的内连接时出现问题

sql - ActiveRecord 查找 - 跳过记录或获取每 N 个记录

java - REST:以 CSV 形式返回对象列表,而不写入磁盘(java spring)

python - 如何将 CSV 文件读入 pandas 并获取一个单元格的值

Python/Pandas - 将空单元格写入 csv 文件(而不是零)

sql - 在 SQL 查询中比较之前将年份添加到列

sql - 获取最近 90 天的记录 (SQL)

java - 之前使用data.sql导入数据时无法使用save()插入

postgresql - Liquibase/Spring Boot/Postgres - 架构名称不起作用

postgresql - Postgres 撤销用户的数据库访问权限