| From: | Richard Huxton <dev(at)archonet(dot)com> | 
|---|---|
| To: | Arnaud Lesauvage <thewild(at)freesurf(dot)fr> | 
| Cc: | pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: COPY FROM and NULL AS does not work | 
| Date: | 2006-12-01 10:37:41 | 
| Message-ID: | 457005F5.9080002@archonet.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
Arnaud Lesauvage wrote:
> HI List,
> 
> Trying to import data from a text file, with a semicolon as  the 
> delimiter, double-quotes as the quoting character.
> 
> I would like empty strings to be inserted as NULL values in a varchar 
> column. In the text file, they are writen as :
> <some columns>;"";<some columns>
I'm not sure you can do that. From the manuals:
"The CSV format has no standard way to distinguish a NULL value from an 
empty string. PostgreSQL's COPY handles this by quoting. A NULL is 
output as the NULL string and is not quoted, while a data value matching 
the NULL string is quoted. Therefore, using the default settings, a NULL 
is written as an unquoted empty string, while an empty string is written 
with double quotes (""). Reading values follows similar rules. You can 
use FORCE NOT NULL to prevent NULL input comparisons for specific columns."
Looks like you'll have to run a separate UPDATE query after the import 
(or pre-process your input file).
-- 
   Richard Huxton
   Archonet Ltd
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Richard Huxton | 2006-12-01 10:53:02 | Re: Restoring database from files on disk | 
| Previous Message | Richard Huxton | 2006-12-01 10:34:27 | Re: Restoring database from files on disk |