[英]Interpret several values as NULL when copying CSV file in PostgreSQL table
[英]Include NULL values when copying csv using psql
我有一個嘗試將各種數據格式復制到Postgres的csv。 我每次都會遇到此錯誤,因為在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
切換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'
字符串替換為包含這些單元格中任何內容的字符串。 您可能需要確保csv中的空值一致。
test.csv(一個空格為null):
1, ,3
的SQL
create table csv (one int, two int, three int);
一個空格為null:
\copy csv from '~/test.csv' delimiter ',' null as ' ' csv;
COPY 1
兩個空格為null:
\copy csv from '~/test.csv' delimiter ',' null as ' ' csv;
ERROR: invalid input syntax for integer: " "
CONTEXT: COPY csv, line 1, column two: " "
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.