Re: \copy ... with null as '' csv doesn't get nulls

From: Lew <lew(at)lwsc(dot)ehost-services(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: \copy ... with null as '' csv doesn't get nulls
Date: 2007-11-25 18:22:48
Message-ID: jLidnei9qO3kINTanZ2dnUVZ_tmhnZ2d@comcast.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Ivan Sergio Borgonovo wrote:
> I'd expect this:
>
> \copy tablename from 'filename.csv' WITH NULL as '' CSV HEADER
>
> whould import "" as NULL.
>
> The input file is UTF-8 (not Unicode/UTF-16).
> I checked the hexdump and the "wannabe" NULL are actually
> 2c 22 22 2c -> ,"",
>
> all fields are varchar that admit NULL
>
> but still I get empty strings ('') in spite of NULL.
>
> Am I missing something or it is a well known "feature"?

I went to the docs for COPY and they say,
> The default is \N (backslash-N) in text mode, and a empty value with no quotes in CSV mode.

That "with no quotes" phrase caught my attention.

Try eliminating the double quotes in the CSV file. "Wannabe" NULL would then be
,, (consecutive commas)
in the CSV. From the docs, you don't even need the "NULL AS" clause in your
COPY statement.

--
Lew

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Brendan Jurd 2007-11-25 20:08:24 Re: [GENERAL] Empty arrays with ARRAY[]
Previous Message Никоноров Григорий 2007-11-25 18:18:40 Re: Error while compiling PostgreSQL with Java